У меня проблема с тем, что я не смог найти мой Wi-Fi-hotspot ssid в своей системе Android.
Я нашел много информации из Google, но ничего полезного.
Пожалуйста, помогите мне решить проблему.
Как получить мой ssid hotspot wifi в моей текущей системе Android
Ответ 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);
}
Этот код работает для меня
Ответ 4
Пробовали ли вы использовать WifiInfo.getSSID()
?
http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID%28%29
Ответ 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
Это поможет вам с вашей задачей.