2011-09-29 4 views
18

私のAndroidシステムで私のWiFiホットスポットのSSIDを見つけることができなかったという問題があります。
私はGoogleから多くの情報を見つけましたが、役に立たないものはありません。
私はそれを解決するために手伝ってください。私の現在のアンドロイドシステムで私の無線LANホットスポットのSSIDを取得する方法

+0

のために働きますか? [WifiManager APIのドキュメント](http://developer.android.com/reference/android/net/wifi/WifiManager.html)を見ましたか? –

+0

ああ〜APIは常に現在のシステムのssidではなく、接続ssidを取得します – solar

+3

ようこそ!これはフォーラムではありません。 __これは質問と回答のサイトです。実際の質問には答えがあり、項目やアイデアや意見はありませんので、あなたの投稿は本当に質問ではないと思います(http://blog.stackoverflow.com/2011/01)。 /real-questions-have-answers/).__ [詳細については、よくある質問をご覧ください] –

答えて

0
+0

私は前に試してみましたが、現在のアンドロイドシステムではなく他のwifiホットスポットをスキャンすることができます – solar

+0

この関数は_current_ネットワークのSSIDを返します。 –

+0

私はネットワーク内の現在の接続ssidではなく、私のAndroidシステムで設定したwifi hospot ssidを取得する必要があります。 – solar

53

あなたは無線LANのSSIDが

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

また、あなたのマニフェストファイルにアクセス権を追加取得するためWifiManagerWifiInfoを使用することができます。

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

ああ〜それは私の現在の接続ssidを得ることができますが、私のアンドロイドシステムで私の無線LANのホットスポットのSSIDを取得することはできません – solar

+0

私は彼が彼が最初に彼のWIFiをオンにした場合にのみ動作するかもしれないことに注意する必要があります。 – gumuruh

+0

Android 8.1では動作しません。 '#dumpsys wifi | mWifiInfoは、mWifiInfo SSID:、BSSID:、MAC:...、サプリカント状態:DISCONNECTED、RSSI:-127、リンク速度:-1Mbps、周波数:-1MHz、ネットID:-1、メーターヒント:false、スコア:0' – Mygod

7

ここでは: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の今後のバージョンで変更されたり完全に削除されたりする可能性があります。だから、それをあまり明確にしない限り、公式アプリにはあまり依存しないでください。

+0

それは意味があります。私は不思議です。私たち自身のデバイス名をどうやって変更できますか?私たちは知っているもちろんのUI設定を介して、しかしコードを介して、あなたは@ BartFriederichs手がかりを持っていますか? – gumuruh

+0

@gumuruh私はそれを手にしており、設定を行うことで可能です。適切な呼び出しを行うには、検査を使用します。ただし、APIのこれらの部分は、いつでも変更または削除してアプリを破棄することができます。自己責任。 –

+0

大丈夫、今私はそれを得た。 :D – gumuruh

0

接続されている場合は、Wi-FiタイプのNetworkInfo経由で確認してください。 次に、wifiinfo getSSid()を使用します。あなたはそれがあなたの仕事のお手伝いをします http://developer.android.com/reference/android/net/wifi/WifiInfo.html

から、このアプリケーションと開発者APIをチェックアウトする必要があります

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

returnd SSIDからダブルスラッシュを削除したい場合があります。

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

このコードは、無益なGoogle検索以外に、これまでにしようとしているものを私

関連する問題