Android 获取wifi信号强度

您所在的位置:网站首页 wifiinfo使用方法 Android 获取wifi信号强度

Android 获取wifi信号强度

2024-06-29 14:19| 来源: 网络整理| 查看: 265

先来了解下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)); 权限:


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3