Android开发经验谈Android开发Android技术知识

Android WIFI

2018-07-07  本文已影响49人  鸿羽羽羽羽羽

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弹出对话框供用户输入密码:

上一篇下一篇

猜你喜欢

热点阅读