很可能你已經找到了答案:currentWifi.getSSID()
被引用在大多數情況下,其中scanResult.SSID
不是(當然,你不能在字符串上使用==
:))。
嘗試這樣的事情,它返回當前SSID
或null
:需要
public static String getCurrentSsid(Context context) {
String ssid = null;
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo.isConnected()) {
final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null && !StringUtil.isBlank(connectionInfo.getSSID())) {
ssid = connectionInfo.getSSID();
}
}
return ssid;
}
還權限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
StringUtil
是不是一個標準的Android類,所以你可以使用TextUtils
代替。然後,該代碼看起來是這樣的:
public static String getCurrentSsid(Context context) {
String ssid = null;
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo.isConnected()) {
final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
final WifiInfo connectionInfo = wifiManager.getConnectionInfo();
if (connectionInfo != null && !TextUtils.isEmpty(connectionInfo.getSSID())) {
ssid = connectionInfo.getSSID();
}
}
return ssid;
}
截至目前'connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);'正式棄用。好難過。 – guness 2015-08-26 08:45:22
'getNetworkInfo'已棄用,請將'getActiveNetworkInfo'與'networkInfo.getType()== ConnectivityManager.TYPE_WIFI' – zed 2017-09-27 09:26:46