在 Android 6 上禁用位置权限似乎会影响 WiFi 参数查询

Disabling Location permission on Android 6 seems to affect WiFi parameter queries

我有一个 Android 应用程序可以访问设备的位置,然后查询 WiFi 参数。一切通常都运行顺利。

如果我关闭应用程序的位置权限(正如我在 Android 6 中所做的那样),我将不再获取设备的位置(正如预期的那样)。但是,当我尝试查询 WiFi 参数时,我也得到了修改后的 WiFiInfo 对象。特别是:

还有其他人看过吗?我已经使用相同的代码验证了它,并且在 2 台不同的设备上启用了位置权限 on/off。知道发生了什么事吗?

更新: 进一步审查时,我说 getScanResults() returns 关于我们连接的设备的 AP 的信息是错误的。它实际上 returns 是一个空列表。这将支持这样的想法,即如果位置权限被拒绝,Google 不希望我们获得有关本地 AP 的任何信息。

WiFi-based 位置基本上是在已知 AP 和位置的巨大数据库中查找 WiFi 接入点信息,以发现设备的位置。这是 Google、SkyHook 和 Apple 等服务在您启用 WiFi 或网络定位时使用的内容。

我怀疑 Google 试图阻止应用程序访问信息,当位置被禁用时可以从中获取位置。他们之前已阻止访问 Google 在禁用位置时播放位置服务,但这不会阻止设备进行扫描,收集将发送到 Google 的相同数据,并发送此数据到不同的服务来发现位置。