5.8 WiFi管理(1)
在前面的章节中,我们已经通过具体的实例讲解了在Android系统中网络编程的6种最常用方式,但是由于Android系统一般用于系统设备,接入网络的方式并不是PC常见的有线接入,而是采用无线方式接入网络。而WiFi在全球范围内都是作为无需任何电信运营执照的免费频段,可以提供一个世界性的、费用低廉且数据带宽高的网络接口,通过WiFi,我们可以方便地使用网络。
在Android中提供了android.net.wifi包来实现应用程序对WiFi的接入管理,包括已接入WiFi网络的信号强度、名称、MAC、IP地址等信息以及扫描、保存、连接等操作。下面,我们实现扫描WiFi、显示已接入WiFi的信息。
在模拟器中,由于硬件模拟方面的不支持,是不能测试WiFi相关程序的,所以必须使用真机进行测试。界面非常简单,最上面一栏显示已经连接的WiFi信息,然后是用于打开WiFi、扫描附近WiFi热点和连接WiFi功能的3个按钮,最后是ListView的显示结果,效果如图5.26所示。
[TR]
[TD][I]498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=288 alt="" src="http://pic.aIhUaU.com/201602/15/1050330.jpg" width=195 border=0>[/TD][/TR]
[TR]
[TD]图5.26 扫描结果[/TD][/TR]
1.权限申请
在使用WiFi之前,必须申请权限,实现如下:
2.扫描WiFi
在Android中,对于WiFi的任何管理,都很好地封装在了一个WifiManager类中,对于大部分WiFi相关的管理操作都可以通过它来完成。
(1)WifiManager
获取WifiManager非常简单,使用Context类的getSystemService()即可,具体实现如下:
WifiManagermWifiManager=(WifiManager)Context.getSystemService (Context.WIFI_SERVICE);
WifiManager可以完成很多操作,包括:
扫描WiFi接入点,并提供足够详细的扫描结果信息,以便用户决定连接点。
对于已连接的WiFi,可以关闭连接,查询相关的网络IP、DNS等动态信息。
对于配置好的网络清单可以进行查看、修改。
定义了标识WiFi状态的常量。
对于这些操作都有具体的方法来实现,常用的方法有:
Wifi开启关闭设置:
booleanisWifiEnabled()WiFi是否可用 booleansetWifiEnabled(booleanenabled)设置WiFi是否可用