600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android 获取wifi信号强度

Android 获取wifi信号强度

时间:2018-10-28 03:22:00

相关推荐

Android 获取wifi信号强度

先来了解下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() {@Overridepublic 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" />

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。