0

プログラムで利用可能なwifiアクセスポイントを取得しようとすると奇妙な問題が発生するため、それが私のテストコードです:

List<ScanResult> wifiList;
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
if (!wifiManager.isWifiEnabled()) wifiManager.setWifiEnabled(true);
wifiManager.startScan();
wifiList = wifiManager.getScanResults();
Log.e("AP LIST", wifiList.toString());

LG-L90、Samsung Nexus、Motorola Nexus、Xiaomi などのテスト デバイスに使用すると、wifi アクセス ポイントの正しいリストが表示されます。たとえば、返されたリストのログ:

[ SSID: WomenHealth、BSSID: 08:60:6e:e9:0b:06、機能: [WPA-PSK-CCMP][WPA2-PSK-CCMP]、レベル: -56、周波数: 2422、SSID: Petcube Asus 5 GHz、BSSID: 78:24:af:97:b1:6c、機能: [ WPA2-PSK-CCMP]、レベル: -62、頻度: 5230、SSID: Petcube Asus、BSSID: 78:24:af:97:b1:68、機能: [WPA2-PSK-CCMP][WPS]、レベル: -64、頻度: 2437、SSID: Petcube Guest、BSSID: 78:24:af:97:b1:69、機能: [WPA2-PSK-CCMP]、レベル: -65、頻度: 2437、SSID: MERP_Guest、BSSID : ce:d3:a3:98:e3:41、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP]、レベル: -66、頻度: 2437、SSID: MERP、BSSID: d2 :d3:a3:98:e3:41、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP]、レベル: -66、頻度: 2437、SSID: retina、BSSID: 68:a8 :6d:65:4b:e7、機能: [WPA2-PSK-CCMP]、レベル: -66、周波数: 2462、SSID: WomenHealth_5GHz、BSSID: 08:60:6e:e9:0b:07、機能: [WPA2 -PSK-CCMP]、レベル: -73、周波数: 5190、SSID: Aurocraft、BSSID: 84:c9:b2:6a:73:f5、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS] 、レベル: -76、頻度: 2412、SSID: EURO_RSCG、BSSID: c4:6e:1f:49:33:28、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][WPS ]、レベル: -77、周波数: 2427、SSID: Aurocraft5GHz、BSSID: 84:c9:b2:6a:73:f7、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP][ WPS]、レベル: -79、頻度: 5200、SSID: Fcolection、BSSID: 64:70:02:46:c2:ee、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP] [WPS]、レベル: -81、周波数: 2442、SSID: Petcube TP-LINK、BSSID: e8:94:f6:03:bd:ea、機能: [WPA-PSK-TKIP+CCMP][WPA2-PSK- TKIP+CCMP][WPS]、レベル: -65、頻度: 2462、SSID: ExperienceSpa、BSSID: 00:1c:a8:48:d3:97、機能: [WPA-PSK-TKIP][WPA2-PSK-CCMP ]、レベル: -91、頻度: 2462、SSID: FC、BSSID: 1c:bd:b9:b8:7f:4a、機能: [WPA2-PSK-CCMP][WPS]、レベル: -93、頻度: 2462]

しかし、Android バージョン 4.0 (Samsung S4、Samsung S5、Samsung Note2、Samsung Note 3) 以上の Samsung デバイスで同じコードをテストしようとすると、SSID と BSSID なしでアクセス ポイントのリストが返されます。たとえば、同じ場所に返されたリストのログ:

[、機能: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -73、頻度: 2412、タイムスタンプ: 1023129814266、距離: ?(cm)、距離Sd: ?( cm)、機能: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -47、頻度: 2437、タイムスタンプ: 1023129814312、距離: ?(cm)、距離 Sd: [ WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -59、頻度: 2437、タイムスタンプ: 1023129814275、距離: ?(cm)、距離Sd: ?(cm)、機能: [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]、レベル: -60、頻度: 2412、タイムスタンプ: 1023129814255、距離: ?(cm)、距離Sd: ?(cm)、機能: [ WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -63、頻度: 2462、タイムスタンプ:1023129814332、距離: ?(cm)、距離Sd: ?(cm)、機能: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -61、頻度: 2462、タイムスタンプ: 1023129814323、距離: ?(cm)、距離Sd: ?(cm)、機能: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -65、頻度: 5560、タイムスタンプ: 1023129814360、距離: ?(cm)、距離 Sd: ?(cm)、機能: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]、レベル: -66、頻度: 5745、タイムスタンプ: 1023129814368、距離: ?(cm)、距離 Sd: ?(cm)、機能: [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]、レベル: -73、頻度: 5180、タイムスタンプ: 1023129814350、距離: ?(cm)、距離 Sd: ?(cm)、機能: [ESS]、レベル: -55、頻度: 2412、タイムスタンプ: 1023129814242、距離: ?(cm)、距離 Sd: ? (cm)、機能: [WPS][ESS]、レベル: -92、頻度: 2462、タイムスタンプ:1023129814341、距離:?(cm)、距離Sd:?(cm)]

この問題を解決するための経験はありますか? Samsung のサポートに問い合わせてみましたが、回答がありません。Google検索も役に立たない

4

1 に答える 1

0

Android 5.0(ロリポップ)を搭載したGalaxy S5でもほぼ同じことを行っており、SSIDとBSSIDを正しく表示できます。タイムスタンプ、距離、距離Sd情報も取得できます。このコードは私のために働いています。

WifiManager wifim;
List<ScanResult>results=wifim.getScanResults();
    for (ScanResult result:results){
        text.append("\n\n_____Wifi Scan results:_____\n\n"+result.toString());
    }

wifiがオンになっていると仮定しているので、そうでない場合はエラーが発生すると思いますが、もう1行のコードでそれを修正する必要があります。

于 2015-04-08T09:44:58.600 に答える