我有一个Android应用程序,可以访问设备的位置,然后查询WiFi参数。一切都很顺利。
如果我关闭应用的位置权限(就像我在Android 6中所做的那样),我就不再获得设备的位置(正如预期的那样)。但是,当我尝试查询WiFi参数时,我还获得了修改后的 WiFiInfo 对象。特别是:
有没有人见过这个?我已使用相同的代码验证了它,并在2个不同的设备上打开/关闭了位置权限。对于发生了什么有什么想法吗?
更新:在进一步审核时,当我说getScanResults()返回有关我们连接的设备的AP的信息时,我错了。它实际上返回一个空列表。如果位置权限被拒绝,这将支持Google不希望我们获得有关本地AP的任何信息的想法。
答案 0 :(得分:1)
基于WiFi的位置基本上是在已知AP和位置的巨型数据库中查找WiFi接入点信息以发现设备所在的位置。当您启用WiFi或网络位置时,这就是Google,SkyHook和Apple等服务的使用方式。
我怀疑Google正在尝试阻止某个应用程序访问信息,这些信息可以在禁用位置时从中获取位置。当位置被禁用时,他们之前已阻止访问Google Play位置服务,但这不会阻止设备进行扫描,收集将发送给Google的相同数据,并将此数据发送到其他服务以发现位置。