设为首页 收藏本站
查看: 1365|回复: 0

[经验分享] WIFI设备

[复制链接]

尚未签到

发表于 2015-10-1 09:47:58 | 显示全部楼层 |阅读模式
一、标注
         转载自:http://www.cnblogs.com/cxcco/archive/2012/02/08/2343189.html,尊重原创!

二、正文

  1、WIFI设备是个啥?
      WIFI是个啥?请移步至百度百科。

  2、WIFI有哪些状态?
      在Android的官方文档中定义了如下五种状态:




    • WIFI_STATE_DISABLED   WIFI网卡不可用
    • WIFI_STATE_DISABLING  WIFI网卡正在关闭
    • WIFI_STATE_ENABLED     WIFI网卡可用
    • WIFI_STATE_ENABLING    WIFI网卡正在打开
    • WIFI_STATE_UNKNOWN    WIFI网卡状态不可知



  3、如何操作WIFI?
      要操作WIFI设备,就需要使用Context.getSystemService(Context.WIFI_SERVICE)来获取WifiManager对象,并通过这个对象来管理我们的WIFI设备。




    • addNetwork(WifiConfiguration config) 添加一个config描述的WIFI网络,默认情况下,这个WIFI网络是DISABLE状态的。
    • calculateSignalLevel(int rssi , int numLevels) 计算信号的等级
    • compareSignalLevel(int rssiA, int rssiB) 对比网络A和网络B的信号强度
    • createWifiLock(int lockType, String tag) 创建一个WIFI 锁,锁定当前的WIFI连接
    • disableNetwork(int netId) 让一个网络连接失效
    • disconnect() 断开当前的WIFI连接
    • enableNetwork(int netId, Boolean disableOthers) 连接netId所指的WIFI网络,并是其他的网络都被禁用
    • getConfiguredNetworks() 获取网络连接的状态
    • getConnectionInfo() 获取当前连接的信息
    • getDhcpInfo() 获取DHCP 的信息
    • getScanResulats() 获取扫描测试的结果
    • getWifiState() 获取当前WIFI设备的状态
    • isWifiEnabled() 判断WIFI设备是否打开
    • pingSupplicant() ping操作,和PC的ping操作相同作用
    • ressociate() 重新连接WIFI网络,即使该网络是已经被连接上的
    • reconnect() 重新连接一个未连接上的WIFI网络
    • removeNetwork() 移除某一个网络
    • saveConfiguration() 保留一个配置信息
    • setWifiEnabled() 让一个连接有效
    • startScan() 开始扫描
    • updateNetwork(WifiConfiguration config) 更新一个网络连接



  4、如何得到周围的WIFI热点列表?
       如果要想得到周围的WIFI热点列表,可以使用WifiManager.getScanResults()返回一个ScanResult列表,ScanResult对象中,包含了以下几个属性:




    • BSSID 接入点的地址
    • SSID 网络的名字,唯一区别WIFI网络的名字
    • Capabilities 网络接入的性能
    • Frequency 当前WIFI设备附近热点的频率(MHz)
    • Level 所发现的WIFI网络信号强度



  5、如何连接上我的WIFI?




DSC0000.gif
1 /**
2  * 根据ID值来自动连接WIFI网络
3  * @param index ID值
4  */
5 public void ConnectWifiBySSID(int index) {
6    // 索引大于配置好的网络索引返回 7    if (index > mWifiConfiguration.size()) {
8     return;
9    }
10    // 连接配置好的指定ID的网络11    mWifiManager.enableNetwork(mWifiConfiguration.get(index).networkId,true);
12 }
13 /**
14  * 根据WifiConfiguration对象来自动连接WIFI网络
15  * @param wcg WifiConfiguration对象
16  */
17 public void ConnectWifiByConfig(WifiConfiguration wifiConfiguration) {
18    int wcgID = mWifiManager.addNetwork(wifiConfiguration);
19    mWifiManager.enableNetwork(wcgID, true);
20 }

      没什么好解释的,可以直接看上面的代码段。

  6、如何查看已经连接上的WIFI信息?
      在Android的SDK中为我们提供了一个叫做WifiInfo的对象,这个对象可以通过WifiManager.getConnectionInfo()来获取。WifiInfo中包含了当前连接中的相关信息。




    • getBSSID()  获取BSSID属性
    • getDetailedStateOf()  获取客户端的连通性
    • getHiddenSSID()  获取SSID 是否被隐藏
    • getIpAddress()  获取IP 地址
    • getLinkSpeed()  获取连接的速度
    • getMacAddress()  获取Mac 地址
    • getRssi()  获取802.11n 网络的信号
    • getSSID()  获取SSID
    • getSupplicanState()  获取具体客户端状态的信息



三、总结
    以上就是WIFI的一些操作了,本来打算要介绍下Android中数据的传输的相关知识的,但是我由于数据传输还比较多,所以就放到明天的笔记中介绍了。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-121191-1-1.html 上篇帖子: WIFI设置(转帖) 下篇帖子: Macbook pro wifi连接无线路由不稳定掉线的解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表