您的位置:首页 > 移动开发 > Android开发

【移动开发】Android中WIFI开发总结(一)

2017-08-15 11:53 295 查看
WIFI就是一种无线联网技术,常见的是使用无线路由器。那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网。如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热点”。

在Android中对Wifi操作,android本身提供了一些有用的包,在android.net.wifi包下面,主要包括以下几个类和接口:

1.ScanResult

主要用来描述已经检测出的接入点,包括接入点的地址,接入点的名称,身份认证,频率,信号强度等信息。其实就是通过wifi 硬件的扫描来获取一些周边的wifi 热点的信息。

2.WifiConfiguration

Wifi网络的配置,包括安全设置等,在我们连通一个wifi 接入点的时候,需要获取到的一些信息。主要包含四个属性:

BSSID:

BSS是一种特殊的Ad-hoc LAN(一种支持点对点访问的无线网络应用模式)的应用,一个无线网络至少由一个连接到有线网络的AP和若干无线工作站组成,这种配置称为一个基本服务装置。一群计算机设定相同的 BSS名称,即可自成一个group,而此BSS名称,即所谓BSSID。通常,手机WLAN中,bssid其实就是无线路由的MAC地址。

networkid:网络ID。

PreSharedKey:无线网络的安全认证模式。

SSID:SSID(Service Set Identif)用于标识无线局域网,SSID不同的无线网络是无法进行互访的。

3.WifiInfo

wifi无线连接的描述,包括(接入点,网络连接状态,隐藏的接入点,IP地址,连接速度,MAC地址,网络ID,信号强度等信息)。这里简单介绍一下WifiManager中常用的方法:
getSSID()获得SSID(热点名称)

getBSSID()
获取BSSID
getDetailedStateOf()获取客户端的连通性

getHiddenSSID()获得SSID 是否被隐藏
getIpAddress()获取IP 地址
getLinkSpeed()获得连接的速度
getMacAddress()获得Mac 地址
getRssi()获得802.11n 网络的信号

4.WifiManager

wifi连接统一管理类,获取WIFI网卡的状态(WIFI网卡的状态是由一系列的整形常量来表示的)

WIFI_STATE_DISABLING = 0WIFI网卡正在关闭
WIFI_STATE_DISABLED = 1WIFI网卡不可用
WIFI_STATE_ENABLING = 2WIFI网正在打开 (WIFI启动需要一段时间)
WIFI_STATE_ENABLED = 3WIFI网卡可用
WIFI_STATE_UNKNOWN = 4未知网卡状态
WIFI_AP_STATE_DISABLING = 10WIFI热点正在关闭
WIFI_AP_STATE_DISABLED = 11WIFI热点不可用
WIFI_AP_STATE_ENABLING = 12WIFI热点正在打开
WIFI_AP_STATE_ENABLED = 13WIFI热点可用
5. 在AndroidManifest.xml进行对WIFI操作的权限设置

下面是汇总的一个wifi管理工具类,我完善了一下,并加上了详细的注解,很实用的!

WifiAdmin类: (wifi管理工具类)

最后,成功连接到wifi后,通过本机IP地址便可以进行相关网络开发,在下一篇中我会讲解一个WIFI热点搜索、创建、连接的Demo(http://smallwoniu.blog.51cto.com/3911954/1338618),希望能帮助到大家!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: