Как получить мой ssid hotspot wifi в моей текущей системе Android

У меня проблема с тем, что я не смог найти мой Wi-Fi-hotspot ssid в своей системе Android.
Я нашел много информации из Google, но ничего полезного. Пожалуйста, помогите мне решить проблему.

Ответ 1

Вы можете использовать WifiManager и WifiInfo для получения идентификатора SSID Wifi

   WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
   WifiInfo wifiInfo = wifiManager.getConnectionInfo();
   Log.d("wifiInfo", wifiInfo.toString());
   Log.d("SSID",wifiInfo.getSSID());

Также добавьте разрешение в файл манифеста.

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
                                                            </uses-permission>

Ответ 2

Здесь: http://www.androidjavadoc.com/2.3/android/net/wifi/WifiManager.html - полная документация по WifiManager.

Обратите внимание, что некоторые из методов доступны только через проверку, так же как и метод, который вам нужен getWifiApConfiguration.

WifiManager wifimanager = (WifiManager) getSystemService(WIFI_SERVICE);
Method[] methods = wifimanager.getClass().getDeclaredMethods();
for (Method m: methods) {           
    if (m.getName().equals("getWifiApConfiguration")) {
        WifiConfiguration config = (WifiConfiguration)m.invoke(wifimanager);

            // here, the "config" variable holds the info, your SSID is in
            // config.SSID
    }
}

O, и поскольку этот материал помечен как скрытый, он может быть полностью или полностью удален в любой будущей версии Android. Поэтому, не полагайтесь на это слишком много на "официальные" приложения, если вы не сделаете это очень ясно.

Ответ 3

WifiConfiguration netConfig = new WifiConfiguration();


try{
    Method setWifiApMethod = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
    boolean apstatus=(Boolean) setWifiApMethod.invoke(wifiManager, netConfig,true);
    Method isWifiApEnabledmethod = wifiManager.getClass().getMethod("isWifiApEnabled"); 

    while(!(Boolean)isWifiApEnabledmethod.invoke(wifiManager)) 
    {}

    Method getWifiApStateMethod = wifiManager.getClass().getMethod("getWifiApState"); 
    int apstate=(Integer)getWifiApStateMethod.invoke(wifiManager);
    Method getWifiApConfigurationMethod = wifiManager.getClass().getMethod("getWifiApConfiguration");
    netConfig=(WifiConfiguration)getWifiApConfigurationMethod.invoke(wifiManager);
    Log.e("CLIENT", "\nSSID:"+netConfig.SSID+"\nPassword:"+netConfig.preSharedKey+"\n");
} catch (Exception e) {
    Log.e(this.getClass().toString(), "", e);
}

Этот код работает для меня

Ответ 5

Проверить через NetworkInfo для wifi-типа, если он подключен. А затем используйте wifiinfo getSSid(). Возможно, вы захотите удалить двойные косые черты из идентификатора SSID returnd

https://play.google.com/store/apps/details?id=com.connect.freewifi

Вы должны проверить это приложение и разработчика api из http://developer.android.com/reference/android/net/wifi/WifiInfo.html

Это поможет вам с вашей задачей.