Android 获取当前连接的wifi名称和rssi

怎么判断当前是否连接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("")||rssi==-127) return null;
        return wifiId+"/"+rssi;
    }

1.这样虽然能获取到当前的连接wifi,但是会出现获取不到wifi名称的情况 比如 和 rssi=-127都被过滤掉了
2.wifiState=WifiManager.WIFI_STATE_ENABLED 这时就可以知道wifi是处于连接的状态了,就可以获取获取wifi的ssid和rssi的值

你可能感兴趣的:(android)