2012-06-01 49 views

回答

2
WifiManager mng = (WifiManager)context.getSystemService(Context.WIFI_SERVICE). 

String currentSSID = mng.getConnectionInfo().getSSID() 
+0

這個答案描述了重複的問題。正如它回答它不能得到我的wifi熱點ssid! – Nolesh

+0

有沒有錯誤?或者返回的字符串是空的? – VinceFR

+0

不,它返回我的WiFi路由器的SSID。 – Nolesh

3

這有點晚,但我最近設法得到設備熱點的SSID。它正在使用我的Galaxy Nexus,但還沒有測試過它。

public static WifiConfiguration getWifiApConfiguration(final Context ctx) { 
    final WifiManager wifiManager = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE); 
    final Method m = getWifiManagerMethod("getWifiApConfiguration", wifiManager); 
    if(m != null) { 
     try { 
      return (WifiConfiguration) m.invoke(wifiManager); 
     } catch(Exception e) { 
     } 
    } 
    return null; 
} 

private static Method getWifiManagerMethod(final String methodName, final WifiManager wifiManager) { 
    final Method[] methods = wifiManager.getClass().getDeclaredMethods(); 
    for (Method method : methods) { 
     if (method.getName().equals(methodName)) { 
      return method; 
     } 
    } 
    return null; 
} 

只需調用getWifiApConfiguration(getActivity()).SSID即可獲取熱點名稱。空指針檢查建議之前;)