执行需要粗略位置许可的网络扫描
Performing network scan requiring permission for coarse location
我正在开发一个应用程序,它可以进行网络扫描并将所有找到的 SSID 放入微调器中。
Android Studio 警告您需要 CHANGE_WIFI_STATE
的许可。将此添加到清单后,Android Studio 不会通过 WifiManager.getScanResults()
returns 0 网络发出任何警告。我发现 ACCESS_COARSE_LOCATION
需要 add/request 许可。
我只需要网络 SSID,我不在乎用户位于何处,所以为什么 I/the 用户需要允许位置权限只是为了获取可用网络列表。以下是我目前进行扫描的方式:
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();
}
I don't care where the user is located
是的,但是给定网络 SSID,如果 WiFi 网络的位置已知,您可以找出用户所在的位置。
why do I/the user need to allow the location permission just to get a list of available networks
为了改善用户隐私,as of Android 6.0。
我正在开发一个应用程序,它可以进行网络扫描并将所有找到的 SSID 放入微调器中。
Android Studio 警告您需要 CHANGE_WIFI_STATE
的许可。将此添加到清单后,Android Studio 不会通过 WifiManager.getScanResults()
returns 0 网络发出任何警告。我发现 ACCESS_COARSE_LOCATION
需要 add/request 许可。
我只需要网络 SSID,我不在乎用户位于何处,所以为什么 I/the 用户需要允许位置权限只是为了获取可用网络列表。以下是我目前进行扫描的方式:
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();
}
I don't care where the user is located
是的,但是给定网络 SSID,如果 WiFi 网络的位置已知,您可以找出用户所在的位置。
why do I/the user need to allow the location permission just to get a list of available networks
为了改善用户隐私,as of Android 6.0。