我什么时候应该使用ACCESS_COARSE_LOCATION权限?

Ter*_*rry 52 android android-location android-permissions google-play-services google-geolocation

我正在构建一个Android应用程序,它将跟踪用户的地理位置并在地图上绘制他们的路线.

我使用的是谷歌播放服务的位置API,如所描述这里.

我的应用程序需要获得ACCESS_FINE_LOCATION许可才是直观的,我将其放入清单中:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

我还需要获得ACCESS_COARSE_LOCATION许可吗?我需要粗略位置的用例是什么?

Com*_*are 65

我还需要ACCESS_COARSE_LOCATION权限吗?

没有.

我需要粗略位置的用例是什么?

如果您没有要求ACCESS_FINE_LOCATION,但您需要位置数据,并且您愿意将该数据模糊(例如,从用户的位置到城市街区附近).在这种情况下LocationManager,你只能使用NETWORK_PROVIDER; 在Play服务融合位置提供商的情况下,他们应该在内部处理这个问题.

很久很久以前,用户在安装时被告知该应用是否需要粗略或精细的位置访问.用户可能会接受需要粗略访问但拒绝需要精确访问的应用的应用.

由于用户界面已经发生变化,用户在确定某个应用程序是否需要粗略或精细的位置权限时会遇到一些困难,我怀疑大多数开发人员只是要求获得良好的位置许可.话虽这么说,如果你知道你的应用程序不需要那么高的准确度(例如,你想要天气预报的位置),要求粗略的位置许可是隐私方面的一个很好的"小费"可能在将来再次证明是有益的.


Sag*_*yak 23

不,你不需要使用粗略的位置.

粗略位置适用于网络提供商的位置,精确位置适用于gps提供商和网络位置提供商.这么好的位置涵盖了两者,你不需要使用另一个.

是一个供您参考的链接.

  • 这是实际的答案 (2认同)

小智 14

位置可以通过两种方式确定:

Using NETWORK_PROVIDER
Using GPS_PROVIDER
Run Code Online (Sandbox Code Playgroud)
  1. 使用NETWORK_PROVIDER

    使用此提供程序所需的Android权限是 ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION.

  2. 使用GPS_PROVIDER

    使用此提供程序所需的Android权限仅为 ACCESS_FINE_LOCATION