在Android中,操作Wifi是很简单的,主要使用以下几个类对象或变量。
private WifiManager wifiManager:声明管理对象OpenWifi。
private WifiInfowifiInfo:Wifi信息。
private List<ScanResult>scanResultList:扫描网络连接列表。
private List<WifiConfiguration>wifiConfigList:网络配置列表。
private WifiLock wifiLock:Wifi锁。
其中最重要是WifiManager类。
获取Wifi列表的主要步骤如下。
(1)要想操作Wifi设备,需要先获取Context.getSystemService(Context.WIFI_SERV-ICE),以获取WifiManager对象,并通过这个对象来管理Wifi设备。
例如:wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE)。
(2)使用WifiManager的isWifiEnabled()判断Wifi设备是否打开。例如:wifiManag-er.isWifiEnabled()。
(3)使用WifiManager的setWifiEnabled(true)打开Wifi,例如:wifiManag-er.setWifiEnabled(true)。
(4)使用WifiManager的getScanResults()返回获取扫描测试的结果,返回的结果是ScanResult的列表。例如:List<ScanResult>list;
list=wifiManager.getScanResults();
ScanResult的重要属性有以下几个。
BSSID:接入点的地址。
SSID:网络的名字,区别Wifi网络的唯一名字
Capabilities:网络接入的性能。
Frequency:当前Wifi设备附近热点的频率(MHz)。
Level所发现的Wifi网络信号强度。
(5)连接Wifi热点。
通过WifiManager.getConfiguredNetworks()方法返回WifiConfiguration对象的列表,然后调用WifiManager.enableNetwork()方法,就可以连接上指定的热点。
(6)查看已经连接上的Wifi信息。
WifiInfo是专门用来表示连接的对象,这个对象可以通过WifiManager.getConnectionInfo()来获取。WifiInfo中包含了当前连接的相关信息。(www.xing528.com)
WifiInfo的主要成员如下。
getBSSID():获取BSSID属性。
getDetailedStateOf():获取客户端的连通性。
getHiddenSSID():获取SSID是否被隐藏。
getIpAddress():获取IP地址。
getLinkSpeed():获取连接的速度。
getMacAddress():获取Mac地址。
getRssi():获取802.11n网络的信号。
getSSID():获取SSID。
getSupplicanState():获取具体客户端状态的信息。
在Android 2.3中创建应用项目:Wifi_List。
(1)在主布局文件activity_main.xml中放置一个ListView控件,用于显示Wifi列表,如图10-1所示。
图10-1 主布局文件
(2)在项目配置文件app/src/AndroidManifest.xml中添加相应权限,代码如下。
(3)主Activity文件MainActivity.java的代码如下。
(4)项目运行结果如图10-2所示。
图10-2 项目运行结果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。