`
龙哥IT
  • 浏览: 258776 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

关于实现Wifi的一些基本方法以及权限

 
阅读更多

我还是在学习阶段,只提供参考,还得根据具体情况而定
方法的实现有:

public class Activity1 {
	// 定义wifimanager对象
	private WifiManager mWifiManager;
	// 定义WifiInfo对象
	private WifiInfo mWifiInfo;
	// 扫描出的网络连接列表
	private List<ScanResult> mWifiList;
	// 网络连接列表
	private List<WifiConfiguration> mWifiConfiguration;

	WifiLock mWifiLock;

	public Activity1(Context context) {
		// 取得wifimanager对象
		mWifiManager = (WifiManager) context
				.getSystemService(context.WIFI_SERVICE);
		// 取得wifiinfo对象
		mWifiInfo = mWifiManager.getConnectionInfo();
	}
//打开wifi
	public void OpenWifi() {
		if (!mWifiManager.isWifiEnabled()) {
			mWifiManager.setWifiEnabled(true);
		}
	}

	public void CloseWifi() {
		if (!mWifiManager.isWifiEnabled()) {
			mWifiManager.setWifiEnabled(false);
		}

	}

	// 锁定wifilock
	public void AcquireWifiLock() {
		mWifiLock.acquire();
	}

	// 解锁wifilock
	public void ReleaseWifiLock() {
		if (mWifiLock.isHeld()) {
			mWifiLock.acquire();
		}
	}

	// 创建一个wifilock
	public void CreatWifiLock() {
		mWifiLock = mWifiManager.createWifiLock("Test");
	}

	// 得到配置好的网络
	public List<WifiConfiguration> getConfiguration() {
		return mWifiConfiguration;

	}

	public void ConnectConFiguration(int index) {
		if (index > mWifiConfiguration.size()) {
			return;
		}
		mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,
				true);

	}

	public void StartScan() {
		mWifiManager.startScan();
		mWifiList = mWifiManager.getScanResults();
		mWifiConfiguration = mWifiManager.getConfiguredNetworks();
	}

	public List<ScanResult> getWifiList() {
		return mWifiList;
	}

	public StringBuilder LookUpScan() {
		StringBuilder stringBuilder = new StringBuilder();
		for (int i = 0; i < mWifiList.size(); i++) {
			stringBuilder.append("Index" + new Integer(i + 1).toString() + ":");
			stringBuilder.append(mWifiList.get(i).toString());
			stringBuilder.append("\n");
		}
		return stringBuilder;
	}

	// 得到MAC地址
	public String GetMacAddress() {
		return (mWifiInfo == null) ? "NULL" : mWifiInfo.getMacAddress();
	}

	// 得到接入点BSSID
	public String GetBSSID() {
		return (mWifiInfo == null) ? "NULL" : mWifiInfo.getBSSID();

	}

	// 得到IP地址
	public int GetIPAddress() {
		return (mWifiInfo == null) ? 0 : mWifiInfo.getIpAddress();

	}

	// 得到连接的ID
	public int GetNetworkId() {
		return (mWifiInfo == null) ? 0 : mWifiInfo.getNetworkId();

	}

	// 得到WifiInfo的所有信息包
	public String GetWifiId() {
		return (mWifiInfo == null) ? "NULL" : mWifiInfo.toString();

	}

	// 添加一个网络并连接
	public void AddNetwork(WifiConfiguration wcg) {
		int wcgID = mWifiManager.addNetwork(wcg);
		mWifiManager.enableNetwork(wcgID, true);
	}

	// 断开指定ID的网络
	public void DisconnectWifi(int netId) {
		mWifiManager.disableNetwork(netId);
		mWifiManager.disconnect();
	}

}

 

使用的权限基本上有:

<!-- ----------得到WIFI访问网络所需要的权限------------------ -->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <!-- 允许程序改变网络连接状态 -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 允许程序改变Wi-Fi连接状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!-- 允许程序访问有关GSM网络信息 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 允许程序访问Wi-Fi网络状态信息 -->
    <uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
    <!-- 允许读写访问”properties”表在checkin数据库中,改值可以修改上传 -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <!-- 允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 允许程序打开网络套接字 -->
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
    <!-- 允许修改话机状态,如电源,人机接口等 -->

 

分享到:
评论

相关推荐

    Android编程实现wifi扫描及连接的方法

    Android 编程实现 WIFI 扫描及连接的方法 Android 编程实现 WIFI 扫描及连接的方法是 Android 应用程序中的一项重要功能,涉及到 Android 网络操作扫描、查找、连接、线程等相关操作技巧。下面将对 Android 编程...

    实现WiFi连接功能demo

    这个"实现WiFi连接功能demo"旨在向开发者展示如何在应用程序中实现在设备上连接、扫描和管理WiFi网络的基本操作。以下是对这个demo中涉及知识点的详细解释: 1. **WiFi API的使用**: - 在Android平台上,开发人员...

    实现WIFI输入密码链接

    在Android平台上,实现WiFi输入密码链接涉及到多个关键知识点,这些知识点包括Android系统的权限管理、WiFi服务的使用、用户界面的设计以及程序的集成。下面将详细阐述这些内容。 首先,要实现WiFi管理功能,你需要...

    uni-app调用Android原生可以实现通信及打开WiFi

    在uni-app中,通过调用原生插件,我们可以实现与Android系统更深度的交互,比如控制WiFi的开启与关闭,以及其他一些特定的硬件操作。\n\n1. **调用原生插件原理**\n 在uni-app中,调用Android原生功能主要是通过`uni...

    实现使用C#代码完成wifi的切换和连接功能

    实现此类功能可能需要管理员权限,因为涉及到系统级别的网络配置。在非管理员模式下运行,可能会受到权限限制,无法执行某些操作。 9. **使用.NET Framework的其他类库**: .NET Framework也提供了一些高级类库,...

    c#实现win7设置wifi功能源码

    在本文中,我们将深入探讨如何使用C#编程语言在Windows 7操作系统中实现WiFi设置功能。C#是一种广泛用于开发Windows应用程序的高级编程语言,它提供了丰富的类库和API,可以方便地与操作系统进行交互。 首先,为了...

    java实现笔记本电脑设置成WiFi热点

    总的来说,Java实现笔记本电脑设置成WiFi热点涉及的知识点包括网络编程、操作系统接口调用、权限管理、事件处理、错误处理、跨平台编程以及可能的安全策略。通过这些技术,开发者可以构建出功能完备且易于使用的WiFi...

    Android获取wifi热点,实现控制wifi链接

    在Android平台上,获取和控制WiFi热点是通过系统提供的WiFi服务接口来实现的。这个过程涉及到Android的网络管理和设备权限。本文将深入探讨如何在Android应用中获取WiFi热点信息以及如何控制WiFi连接。 首先,要...

    Android下自动连接指定SSID的WIFI的简单实现的demo

    以上步骤基本涵盖了实现"Android下自动连接指定SSID的WIFI"的主要过程。在"**WIFIAutoConnectionDemo**"这个示例项目中,你应该能看到这些步骤的具体实现。通过阅读和理解代码,你可以了解到如何在实际应用中实现这...

    小米随身wifi即可接收又可发射wifi热点方法.docx

    在本文中,我们将详细介绍如何使用小米随身wifi实现wifi热点的接收和发送方法。 二、前提条件 在开始之前,需要确保您已经安装了小米随身wifi的驱动程序,并且已经连接了小米随身wifi设备。在Windows 8.1系统上...

    Android实现WIFI连接源码

    在Android系统中,实现WIFI连接涉及到多个层次的编程接口,包括使用Android的Wi-Fi Manager服务、BroadcastReceiver以及权限管理等。以下将详细介绍如何通过源码实现这一功能。 首先,要进行WIFI连接,必须在...

    Android编程获取Wifi名称(SSID)的方法

    最后,由于Android开发者可能还需要了解其他与Android开发相关的内容,本文提供了一些链接和资料,包括《Android基本组件用法总结》、《Android视图View技巧总结》等专题,以及关于AndroidManifest.xml文件相关属性...

    android对wifi的基本操作

    在Android系统中,WiFi的基本操作涉及到了多个层次的编程接口和功能实现,这些操作包括了开启、关闭WiFi,扫描可用的WiFi网络,连接到特定的网络,以及管理WiFi的设置等。以下是对这些知识点的详细解释: 1. **开启...

    Android_Wifi编程 实现wifi的先关功能

    以下是在Android应用中操作Wi-Fi所需的基本权限: 1. `CHANGE_NETWORK_STATE`:允许应用更改网络连接状态。 2. `CHANGE_WIFI_STATE`:允许应用更改Wi-Fi连接状态。 3. `ACCESS_NETWORK_STATE`:允许应用访问网络...

    微信小程序wifi列表.zip

    首先,要获取用户的WiFi权限,微信小程序提供了相应的API接口。开发者需要在`app.json`配置文件中的`permission`字段声明需要的权限,例如: ```json { "permissions": { "scope.wifi": { "desc": "应用需要获取...

    基于AndroidStudio开发的实现wifi和蓝牙的扫描功能

    7. **权限管理**: 在Android 6.0(API level 23)及以上版本,应用需要在运行时请求`ACCESS_FINE_LOCATION`和`BLUETOOTH_ADMIN`/`BLUETOOTH`权限才能进行Wi-Fi和蓝牙扫描以及连接操作。确保在AndroidManifest.xml中...

    Android8.0平台实现双wifi模块STA+AP模式

    在Android 8.0平台上实现双Wi-Fi模块的STA(Station)+AP(Access Point)模式,是一项技术挑战,涉及到Android系统的网络堆栈、Wi-Fi驱动以及框架层的深度定制。这种模式允许设备同时作为Wi-Fi客户端连接到一个网络...

    安卓Android源码——WIFI扫描Demo.zip

    在安卓平台上,开发一款应用来实现WIFI扫描功能是一个常见的需求。这个压缩包"安卓Android源码——WIFI扫描Demo.zip"提供了一个示例代码,帮助开发者了解如何在Android系统中进行WIFI扫描并处理扫描结果。以下是关于...

    WIFI探针安卓源码

    而"wifiprobe_android"很可能就是这个项目的主源代码包,包含了实现WIFI探针功能的所有Android源码文件,如Activity、Service、BroadcastReceiver等组件,以及可能的网络通信和数据解析模块。 在这个源码中,开发者...

    Android 扫描 wifi 二维码自动连接

    在Android平台上,实现扫描WiFi二维码并自动连接的功能是一项实用的技术,它可以方便用户快速连接到新的无线网络,无需手动输入复杂的密码。以下将详细介绍这个功能的关键知识点: 1. **二维码解析**: - 首先,...

Global site tag (gtag.js) - Google Analytics