Molto probabilmente avete già trovato risposta: currentWifi.getSSID()
è quotato nella maggior parte dei casi in cui non è scanResult.SSID
(e ovviamente non è necessario utilizzare ==
su stringhe :)).
provare qualcosa di simile, restituisce corrente SSID
o null
: sono richieste
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;
}
anche permesso:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
StringUtil
non è una classe standard di Android, in modo da poter utilizzare TextUtils
invece. Il codice è quindi in questo modo:
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;
}
fonte
2012-06-17 22:31:03
fin d'ora 'connManager.getNetworkInfo (ConnectivityManager.TYPE_WIFI);' è ufficialmente deprecato. così triste. – guness
'getNetworkInfo' è deprecato, usa' getActiveNetworkInfo' con 'networkInfo.getType() == ConnectivityManager.TYPE_WIFI' – zed