首页 > 解决方案 > 为什么 Google Nearby Connections 需要 ACCESS_COARSE_LOCATION 和/或 ACCESS_FINE_LOCATION 权限?

问题描述

我用谷歌搜索了很多,但仍然没有解释“为什么?” 需要这些权限才能在设备之间建立离线(无互联网)连接。我有一个简单的应用程序,只需要 p2p-star 策略以主从模式在设备之间交换数据,我很难向我的用户解释为什么我的应用程序需要它们。“只是因为 lib 这么说。这就是为什么”。

官方文档也没有对我说什么。

“这个 API 的主要目标是提供一个简单、可靠和高性能的平台。在底层,API 使用蓝牙、BLE 和 Wifi 热点的组合,利用各自的优势,同时规避各自的弱点。这有效地在一系列 Android 操作系统版本和硬件中抽象出蓝牙和 Wifi 的变幻莫测,使开发人员能够专注于对其用户重要的功能。”

PS:据我所知 ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION 是关于 GPS

PSS:如果这个问题会在这里得到回答 https://github.com/android/connectivity-samples/issues/204

标签: androidpermissionsgoogle-nearby

解决方案


因为蓝牙和 WiFi 扫描可以揭示用户的位置,或者作为近似值(“家庭房电视”被发现,所以你必须在家)或详细信息(设备 A、B 和 C 最后一次出现在 lat/lng X,所以我们认为你可能在 X)。

https://developer.android.com/guide/topics/connectivity/bluetooth-le#permissions


推荐阅读