先来了解下Android如何获取wifi的信息:
WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifi_service.getConnectionInfo();

其中wifiInfo有以下的方法:
wifiinfo.getBSSID();
wifiinfo.getSSID();
wifiinfo.getIpAddress();获取IP地址。
wifiinfo.getMacAddress();获取MAC地址。
wifiinfo.getNetworkId();获取网络ID。
wifiinfo.getLinkSpeed();获取连接速度,可以让用户获知这一信息。
wifiinfo.getRssi();获取RSSI,RSSI就是接受信号强度指示。
这里得到信号强度就靠wifiinfo.getRssi()这个方法。得到的值是一个0到-100的区间值,是一个int型数据,其中0到-50表示信号最好,-50到-70表示信号偏差,小于-70表示最差,有可能连接不上或者掉线,一般Wifi已断则值为-200。

  • 获取wifi信号强度:
    private int obtainWifiInfo() {        // Wifi的连接速度及信号强度:        int strength = 0;        WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);        // WifiInfo wifiInfo = wifiManager.getConnectionInfo();        WifiInfo info = wifiManager.getConnectionInfo();        if (info.getBSSID() != null) {            // 链接信号强度,5为获取的信号强度值在5以内             strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);            // 链接速度            int speed = info.getLinkSpeed();            // 链接速度单位            String units = WifiInfo.LINK_SPEED_UNITS;            // Wifi源名称            String ssid = info.getSSID();        }//        return info.toString();        return strength;    }
  • 广播接收信号强度变化的处理:
    public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {        @Override        public void onReceive(Context context, Intent intent) {            int s = obtainWifiInfo();            tv.setText(s+"");        }    };
  • 注册广播:
        registerReceiver(rssiReceiver,new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));
  • 权限:
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

更多相关文章

  1. Android布局优化(四)X2C — 提升布局加载速度200%
  2. Android重量级开发之--提高android启动速度研究
  3. Android: Android 3.0 SDK发布,速度更新之
  4. Android animation Interpolator属性 设置动画速度介绍?
  5. Android实时获得周围wifi信息(SSID,强度等)
  6. 对比select * 和 select 所有字段写出速度实例
  7. .NET Core 和 .NET .Framework 相比哪个速度快?
  8. 牛逼!一行代码让 pandas 的 apply 速度飙到极致!
  9. 爬虫速度太慢?来试试用异步协程提速吧!

随机推荐

  1. Android中软键盘使用总结(一)
  2. android 里使用Socket进行发送消息案例
  3. cocos2dx 移植android 报错
  4. 学习android!!!! 谁是android的机器啊?
  5. Android文字的复制和粘贴
  6. Android使用AttributeSet自定义控件的方
  7. 安卓高手之路之PackageManagerservice
  8. FregServer进程,返回BR_REPLY
  9. Android Studio动态调试Smali
  10. Android SDL移植版学习笔记