首页 理论教育 Android Wifi应用:如何获取Wifi列表

Android Wifi应用:如何获取Wifi列表

时间:2023-06-27 理论教育 版权反馈
【摘要】:在Android中,操作Wifi是很简单的,主要使用以下几个类对象或变量。private WifiManager wifiManager:声明管理对象OpenWifi。private List<WifiConfiguration>wifiConfigList:网络配置列表。获取Wifi列表的主要步骤如下。使用WifiManager的isWifiEnabled()判断Wifi设备是否打开。WifiInfo的主要成员如下。在Android 2.3中创建应用项目:Wifi_List。在主布局文件activity_main.xml中放置一个ListView控件,用于显示Wifi列表,如图10-1所示。图10-1 主布局文件在项目配置文件app/src/AndroidManifest.xml中添加相应权限,代码如下。

Android Wifi应用:如何获取Wifi列表

在Android中,操作Wifi是很简单的,主要使用以下几个类对象或变量

978-7-111-58810-8-Chapter10-1.jpgprivate WifiManager wifiManager:声明管理对象OpenWifi。

978-7-111-58810-8-Chapter10-2.jpgprivate WifiInfowifiInfo:Wifi信息。

978-7-111-58810-8-Chapter10-3.jpgprivate List<ScanResult>scanResultList:扫描网络连接列表。

978-7-111-58810-8-Chapter10-4.jpgprivate List<WifiConfiguration>wifiConfigList:网络配置列表。

978-7-111-58810-8-Chapter10-5.jpgprivate 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的重要属性有以下几个。

978-7-111-58810-8-Chapter10-6.jpgBSSID:接入点的地址

978-7-111-58810-8-Chapter10-7.jpgSSID:网络的名字,区别Wifi网络的唯一名字

978-7-111-58810-8-Chapter10-8.jpgCapabilities:网络接入的性能。

978-7-111-58810-8-Chapter10-9.jpgFrequency:当前Wifi设备附近热点的频率(MHz)。

978-7-111-58810-8-Chapter10-10.jpgLevel所发现的Wifi网络信号强度。

(5)连接Wifi热点。

通过WifiManager.getConfiguredNetworks()方法返回WifiConfiguration对象的列表,然后调用WifiManager.enableNetwork()方法,就可以连接上指定的热点。

(6)查看已经连接上的Wifi信息。

WifiInfo是专门用来表示连接的对象,这个对象可以通过WifiManager.getConnectionInfo()来获取。WifiInfo中包含了当前连接的相关信息。(www.xing528.com)

WifiInfo的主要成员如下。

978-7-111-58810-8-Chapter10-11.jpggetBSSID():获取BSSID属性。

978-7-111-58810-8-Chapter10-12.jpggetDetailedStateOf():获取客户端的连通性。

978-7-111-58810-8-Chapter10-13.jpggetHiddenSSID():获取SSID是否被隐藏。

978-7-111-58810-8-Chapter10-14.jpggetIpAddress():获取IP地址。

978-7-111-58810-8-Chapter10-15.jpggetLinkSpeed():获取连接的速度。

978-7-111-58810-8-Chapter10-16.jpggetMacAddress():获取Mac地址。

978-7-111-58810-8-Chapter10-17.jpggetRssi():获取802.11n网络的信号。

978-7-111-58810-8-Chapter10-18.jpggetSSID():获取SSID。

978-7-111-58810-8-Chapter10-19.jpggetSupplicanState():获取具体客户端状态的信息。

在Android 2.3中创建应用项目:Wifi_List。

(1)在主布局文件activity_main.xml中放置一个ListView控件,用于显示Wifi列表,如图10-1所示。

978-7-111-58810-8-Chapter10-20.jpg

图10-1 主布局文件

(2)在项目配置文件app/src/AndroidManifest.xml中添加相应权限,代码如下。

978-7-111-58810-8-Chapter10-21.jpg

(3)主Activity文件MainActivity.java的代码如下。

978-7-111-58810-8-Chapter10-22.jpg

978-7-111-58810-8-Chapter10-23.jpg

(4)项目运行结果如图10-2所示。

978-7-111-58810-8-Chapter10-24.jpg

图10-2 项目运行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈