Android WiFi功能实现,知其然必知其所以然!(一)


        有一段时间没有更新博客,想说的话太多,一时间都堆积在一起。还没有练就一心两用的神功,只好一点一点理清后跟大家说一说。
马上就是平安夜,然后圣诞节。这些年一直没有过一次这西方的节日。此次也很想亲身体验一番,所以定好行程,从五道口至西单,然后三里屯和工体。看一看这圣诞节期间北京最美的夜景。
圣诞节要来了,我这里准备了一些小礼物,这一年攒了不少袜子,大家谁想要礼物的,我把它放进袜子里送过去。
谈到圣诞,就不得不吐槽一下中国的春节了。
以前,看过一档节目,赵忠祥老师主持的动物世界,其中有这样一个片段:在一望无际的大草原上,每到动物迁徙的季节,有着数十万上百万的动物大军,浩浩荡荡的开始迁徙之路。赵忠祥老师是这样解说的:“这是历史上最大的一次哺乳动物迁徙”。然后,高手永远在民间,有网友补刀:“你是没见过中国的春运”。
每年春节,虽然也经历过抢票的过程,但感觉今年尤其困难。网上各种抢票软件连刷4、5天,毛都没有。想我修炼多年的麒麟臂仍然败下阵来,只好感叹强中自有强中手,我泱泱大国,辉煌可待。。。年关将近,却一票难求,使我夜不能寐。归家心切,使我一直坚持刷P。天行健,君子以自强不息;刷车票,大伙要废寝忘食。在我不懈努力下,谁说一P难求。仰天大笑出门去,我辈岂是无票人。----“妹子,约么,我有票”----“啪!”
于是我悟出个道理,唯有坚持不懈,才能走向胜利!
扯淡结束,言归正传。


Android WiFi功能实现,知其然必知其所以然!(二)

WiFi已经在我们生活中无孔不入,上班,吃饭,睡觉等等,可以说我们的吃喝拉撒睡的过程中,一直都有WiFi的存在,有它陪伴,不孤独。。。
这就是我们每次到一个新地方,吃饭,看电影,游玩等等,看到老板的第一句话不是常用的:老板你好!而是:老板你好,有WiFi么?----“什么?没有?这地方的饭菜肯定不好吃,此处不留爷,自有留爷处。”然后,潇洒的寻找下一个有WiFi的落脚点。那么问题来了?
什么是WiFi?----Wi-Fi是一种可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它是一个高频无线电信号。引自百科
代码是最好的老师,在Android中,android.net.wifi包下提供了几个重要的操作WiFi的类。
ScanResult.java
    Class Overview
Describes information about a detected access point. In addition to the attributes described here, the supplicant keeps track of quality, noise, and maxbitrate attributes, but does not currently report them to external clients.


该类通过WiFi硬件扫描获取到WiFi热点的信息,包括WiFi名称,身份认证,地址,信号强度,频率等。




public class
WifiConfiguration
extends Object
implements Parcelable
java.lang.Object
   ↳ android.net.wifi.WifiConfiguration
Class Overview
A class representing a configured Wi-Fi network, including the security configuration.


该类描述WiFi网络的配置,包括安全设置。主要字段有:


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


networkid:网络ID。


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


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




public class
WifiInfo
extends Object
implements Parcelable
java.lang.Object
   ↳ android.net.wifi.WifiInfo
Class Overview
Describes the state of any Wifi connection that is active or is in the process of being set up.


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


getSSID() 获得SSID(热点名称)
getBSSID()
获取BSSID
getDetailedStateOf() 获取客户端的连通性
getHiddenSSID() 获得SSID 是否被隐藏
getIpAddress() 获取IP 地址
getLinkSpeed() 获得连接的速度
getMacAddress() 获得Mac 地址
getRssi() 获得802.11n 网络的信号


WifiManager
extends Object
java.lang.Object
   ↳ android.net.wifi.WifiManager
Class Overview
This class provides the primary API for managing all aspects of Wi-Fi connectivity. Get an instance of this class by callingContext.getSystemService(Context.WIFI_SERVICE). It deals with several categories of items:


The list of configured networks. The list can be viewed and updated, and attributes of individual entries can be modified.
The currently active Wi-Fi network, if any. Connectivity can be established or torn down, and dynamic information about the state of the network can be queried.
Results of access point scans, containing enough information to make decisions about what access point to connect to.
It defines the names of various Intent actions that are broadcast upon any sort of change in Wi-Fi state.
This is the API to use when performing Wi-Fi specific operations. To perform operations that pertain to network connectivity at an abstract level, use ConnectivityManager.
wifi连接统一管理类,获取WIFI网卡的状态(WIFI网卡的状态是由一系列的整形常量来表示的)。
WIFI_STATE_DISABLING = 0 WIFI网卡正在关闭
WIFI_STATE_DISABLED = 1 WIFI网卡不可用
WIFI_STATE_ENABLING = 2 WIFI网正在打开 (WIFI启动需要一段时间)
WIFI_STATE_ENABLED = 3 WIFI网卡可用
WIFI_STATE_UNKNOWN = 4 未知网卡状态
WIFI_AP_STATE_DISABLING = 10 WIFI热点正在关闭
WIFI_AP_STATE_DISABLED = 11 WIFI热点不可用
WIFI_

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值