我在一个应用程序上工作,它做了一个网络扫描,并把所有找到的SSID到一个微调。
Android Studio警告您需要权限才能使用CHANGE_WIFI_STATE
。在将其添加到清单中时,Android Studio不会通过WifiManager.getScanResults()
返回0网络给出任何警告。我发现我需要为ACCESS_COARSE_LOCATION
添加/请求权限。
我只需要网络SSID,我不关心用户位于何处,那么为什么我/用户需要允许位置权限才能获得可用网络的列表。下面是我目前进行扫描的方式:
activity.registerReceiver(mWifiScannerReceiver, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifiManager = (WifiManager)activity.getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();
And my receiver:
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION))
{
List<ScanResult> scanResults = wifiManager.getScanResults();
wifiNetworkList.clear();
//List<String> ssids = new ArrayList<>();
for (int i = 0; i < scanResults.size(); i++)
{
wifiNetworkList.add(scanResults.get(i).SSID);
//ssids.add(scanResults.get(i).SSID);
}
//wifiNetworkList = ssids;
wifiAdapter.notifyDataSetChanged();
}
发布于 2016-04-01 05:38:33
我不关心用户位于何处
可以,但是给定网络SSID,如果知道该WiFi网络的位置,您就可以找到用户所在的位置。
为什么我/用户需要允许位置权限才能获得可用网络的列表
为了改善用户隐私,as of Android 6.0。
https://stackoverflow.com/questions/36344239
复制相似问题