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、三星 Nexus、摩托罗拉 Nexus、小米等测试设备时,我得到了正确的 wifi 接入点列表。例如返回列表的日志:

[ SSID:女性健康,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:视网膜,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)的三星设备上测试相同的代码时,接入点列表返回没有 SSID 和 BSSID。例如在同一位置返回列表的日志:

[,能力:[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS],级别:-73,频率:2412,时间戳:1023129814266,距离:?(cm),distanceSd:?( cm), , 能力: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], 等级: -47, 频率: 2437, 时间戳: 1023129814312, 距离: ?(cm), distanceSd: ?(cm), , 能力: [WPA2-PSK-CCMP][ESS], 等级: -56, 频率: 2437, 时间戳: 1023129814284, 距离: ?(cm), distanceSd: ?(cm), , 能力: [ WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS],级别:-59,频率:2437,时间戳:1023129814275,距离:?(cm),distanceSd:?(cm),,能力:[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS],级别:-60,频率:2412,时间戳:1023129814255,距离:?(cm),distanceSd:?(cm),,能力:[ WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS],级别:-63,频率:2462,时间戳:1023129814332, 距离: ?(cm), distanceSd: ?(cm), , 能力: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], 等级: -61, 频率: 2462,时间戳:1023129814323,距离:?(cm),distanceSd:?(cm),,能力:[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS],级别:-65,频率: 5560, 时间戳: 1023129814360, 距离: ?(cm), distanceSd: ?(cm), , 能力: [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS], 等级: -66,频率:5745,时间戳:1023129814368,距离:?(cm),distanceSd:?(cm),能力:[WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS],级别:-73,频率: 5180, 时间戳: 1023129814350, 距离: ?(cm), distanceSd: ?(cm), , 能力: [ESS], 等级: -55, 频率: 2412, 时间戳: 1023129814242, 距离: ?(cm), distanceSd: ? (cm), , 能力:[WPS][ESS],级别:-92,频率:2462,时间戳:1023129814341,距离:?(cm),distanceSd:?(cm)]

有没有人有经验来解决这个问题?我正在尝试与三星支持沟通,但他们没有给我答案。谷歌搜索也无济于事

4

1 回答 1

0

我对带有 android 5.0(棒棒糖)的 Galaxy S5 所做的几乎相同,我可以正确看到 SSID 和 BSSID,我还获得了时间戳、距离和 distanceSd 信息,试试这个对我有用的代码。

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

我只是假设wifi是打开的,所以如果不是,那么我猜你会得到一个错误,但多行代码应该可以解决这个问题。

于 2015-04-08T09:44:58.600 回答