Android Wifi开发
1.WIFI核心类WifiManager
public class WifiManager
extends Object
的java.lang.object
↳ android.net.wifi.WifiManager
这个类提供了管理Wi-Fi连接的所有方面的主要API。通过调用得到这个类的一个实例Context.getSystemService(Context.WIFI_SERVICE)。它涉及几类产品:
配置网络列表。该列表可以查看和更新,单个条目的属性进行修改。
当前活动的Wi-Fi网络,如果有的话。连接可以建立或拆除,并且有关网络的状态的动态信息可以查询。
接入点的扫描的结果,包含足够的信息来什么接入点连接到决策。
它定义了在任何类型的Wi-Fi状态变化的各种转播意向动作的名称。
Wi-Fi具体操作时要使用的API。要执行一些与在抽象的层面与网络连接操作,使用ConnectivityManager。
常用方法:
int addNetwork(WifiConfiguration config)添加一个新的网络描述为一套配置网络。
boolean disableNetwork(int netId)禁用配置的网络。
boolean disconnect()从当前活动的接入点撇清。
boolean enableNetwork(int netId, boolean disableOthers)允许之前配置的网络与关联。
List getConfiguredNetworks()返回请求者配置的所有网络的列表。
WifiInfo getConnectionInfo()返回有关当前Wi-Fi连接的动态信息,如果有的话是积极的。
DhcpInfo getDhcpInfo()从最后一次成功DHCP请求返回DHCP分配的地址,如果有的话。
List getScanResults()返回最新的接入点扫描的结果。
int getWifiState()获取Wi-Fi功能的状态。
boolean isWifiEnabled()返回的Wi-Fi是否已启用或禁用。
boolean reconnect()重新连接到当前活动的访问点上,如果我们目前正在断开。
boolean removeNetwork(int netId)从配置网络的列表中删除指定的网络。
boolean setWifiEnabled(boolean enabled)启用或禁用无线网络连接。
boolean startScan()请求接入点的扫描。
int updateNetwork(WifiConfiguration config)更新现有配置的网络的网络描述。
2.添加权限
3.开始wifi功能
4.在onCreate方法中添加wifi状态监听器
4.1.注册广播监听器
4.2.广播接收者
4.3.记得广播的取消注册监听
5.关闭WiFi
6.添加并连接wifi
6.1点击连接wifi
6.2在wifiHelper中实现addNetWorkWAP这个方法
6.3创建一个wifi配置信息
7.测试网络(使用Ping命令来测试)
通过直接Ping一个网站来测试该wifi是否有网络
8.断开某个已经连接的wifi
9.搜索附近的wifi
在Android6.0以后,默认是搜索不要附近WIFI的列表的,需要将其APP加载到系统的APP安装目录(/system/app)下,也可以添加如下权限,但是该权限需要用户设置同意,所以我们可以引导用户去启动位置的权限。
在添加如下权限后,还需要提示用户让其打开手机的gps信号开关,否则将无法获取wifi列表。
9.1扫描附近wifi
9.2实现点击收索wifi
9.3编写WifiAdatper
10.点击连接附近wifi
10.1点击搜索出来的wifi
10.2初始化一个输入密码的对话框
10.3在item点击事件中弹出对话框:
10.4在wifiHelper中添加checkAuth方法,用来检查扫描出来的wifi是否需要密码
10.5在wifiHelper中添加了方法connectSavedWifi,用来重连先前已经连接过的wifi:
10.6弹出对话框供用户输入密码: