25

こんにちは、すべてのバグ報告です。リンク

問題の詳細:

コード-wifiManager.getConnectionInfo().getSSID()

上記のコードは現在の SSID を返します。現在の SSID を余分な引用符で囲んで返しています。

たとえば。SSIDinternetは として返され"internet"ます。

これは、デバイス Nexus 7 を使用する Jelly Bean 4.2 でのみ見られます。

現在の SSID と接続しようとしている SSID を比較すると、このバグが原因でアプリでエラーが発生します。

ただし、コードwifiManager.getScanResults();は余分な引用符なしですべての SSID を返します。


4

5 に答える 5

32

これはバグではなく、動作はhttp://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID()のドキュメントに従って正しいです。

いわゆるバグは明らかに 4.2 より前のデバイスにありました。"" エンクロージャで返されなかったからです。

Aiden の方法は、Android が残した現在の混乱状態にある私には良さそうです。ただし、理論的に正しいとは、

if (ssid.startsWith("\"") && ssid.endsWith("\"")){
             ssid = ssid.substring(1, ssid.length()-1);
}
于 2013-02-21T00:53:37.950 に答える
6

しばらくの間、これは私がそれを回避する方法ですが、問題を解決するのは素晴らしいことではありません.

 public String removeQuotationsInCurrentSSIDForJellyBean(String ssid){
     int deviceVersion= Build.VERSION.SDK_INT;

     if (deviceVersion >= 17){
         if (ssid.startsWith("\"") && ssid.endsWith("\"")){
             ssid = ssid.substring(1, ssid.length()-1);
         }
     }

     return ssid;

 }
于 2012-11-26T10:36:42.523 に答える
4

2 つの非常に単純なバリアント:

string = string.replaceAll("^\" | \"$", "");

string = string.substring(1, string.length() - 1);
于 2012-11-27T09:09:06.160 に答える
0

同じ問題に直面しました!下位互換性のあるこの手法を使用しました。

if (suppliedSSID.equals(connectionInfo.getSSID()) || ("\"" + suppliedSSID + "\"").equals(connectionInfo.getSSID()) { DO SOMETHING }

于 2014-01-13T01:39:52.893 に答える