怎么判断当前是否连接wifi 和连接后wifi的名称和rssi呢,这在开发中是常用的需求,下面就把代码分享下
/**
* 获取当前连接的wifi名称
*
* @param context
* @return
*/
public String getCurWIFIName(Context context) {
WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int wifiState = wifiMgr.getWifiState();
if(wifiState!=WifiManager.WIFI_STATE_ENABLED)return null;
WifiInfo info = wifiMgr.getConnectionInfo();
String wifiId = info != null ? info.getSSID().replace("\"", "") : null;
int rssi = info.getRssi();
Log.e("MainActivity","rssi:"+rssi+"---wifiId:"+wifiId);
if(wifiId==null||wifiId.equals("<unknown ssid>")||rssi==-127) return null;
return wifiId+"/"+rssi;
}
1.这样虽然能获取到当前的连接wifi,但是会出现获取不到wifi名称的情况 比如 和 rssi=-127都被过滤掉了
2.wifiState=WifiManager.WIFI_STATE_ENABLED 这时就可以知道wifi是处于连接的状态了,就可以获取获取wifi的ssid和rssi的值