2011-09-29 11 views
18

Android sistemimde wifi hotspot ssid'imi bulamadığım bir sorunum var.
Google'dan birçok bilgi buldum, ancak yardımcı olmadı.
Lütfen çözmem için bana yardımcı olun.Güncel android sistemimde wifi hotspot ssidimi nasıl alabilirim

+0

için çalışıyor? [WifiManager API dokümantasyonunu] incelediniz mi (http://developer.android.com/reference/android/net/wifi/WifiManager.html)? –

+0

Oh ~ API her zaman bağlantı ssid alır, mevcut sistem ssid değil – solar

+3

SO hoş geldiniz! Bu bir forum değil; __this bir soru ve cevap sitesidir, ve korkarım yazdığınız bir soru değil, çünkü [gerçek soruların cevapları, fikirleri veya fikirleri değil] (http://blog.stackoverflow.com/2011/01) /real-questions-have-answers/).__ [Daha fazla bilgi için lütfen SSS'yi okuyun.] (http://www.stackoverflow.com/faq) –

cevap

53

Sen Wifi SSID

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

Ayrıca Manifest dosyasında İzni eklemek almak için WifiManager ve WifiInfo kullanabilirsiniz.

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

Ah ~ önce denedim bu yöntem, Sadece benim mevcut bağlantı ssid alabilir, ama benim android sistemi – solar

+0

benim wifi hotspot ssid alamıyorum sanırım o sadece onun WIfi ilk açtı eğer bu çalışıyor olabilir dikkat etmeliyim. – gumuruh

+0

Android 8.1'de çalışmıyor. # # dumpsys wifi | grep mWifiInfo' 'verir mWifiInfo SSID: , BSSID: , MAC: ..., Supplicant durumu: RSSI, BAĞLANTI YOK: -127, Bağlantı hızı: -1Mbps, Frekans: -1MHz Net ID: -1, Ölçülen ipucu: yanlış, puan: 0 ' – Mygod

7

İşte: http://www.androidjavadoc.com/2.3/android/net/wifi/WifiManager.html WifiManager tam dokümandır.

Bazı yöntemlerin yalnızca getWifiApConfiguration'a gereksinim duyduğunuz yöntem olduğu için denetim yoluyla ulaşılabilir olduğunu unutmayın.

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 
    } 
} 

Ey

ve bu şeyler gizli olarak işaretlendiği için, bu değiştirebilir veya tamamen Android'in gelecekte sürümünde kaldırılacaktır. Bu yüzden, bunu çok açık bir şekilde yapmadıkça, "resmi" uygulamalara fazla güvenmeyin.

+0

bu mantıklı. Fakat merak ederim. Kendi cihaz adımızı nasıl değiştirebiliriz? UI Ayarları aracılığıyla elbette biliyoruz, ama kod aracılığıyla, @BartFriederichs ipucu var mı? – gumuruh

+0

@gumuruh Bununla uğraşıyorum ve yapılandırmayı ayarlayarak mümkündür. Doğru çağrılara ulaşmak için denetimi kullanın. API'nın bu bölümlerinin herhangi bir zamanda değiştirilebileceğini veya kaldırılabileceğini ve uygulamanızı kırdığını unutmayın. Kendi sorumluluğunuzda kullanın. –

+0

tamam teşekkürler, şimdi anladım. : D – gumuruh

2
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); 
} 

Bu kod sonuçsuz Google aramaları dışında, şimdiye kadar denedim bana ne

İlgili konular