我正在构建一个Android应用程序,它将跟踪用户的地理位置,并在地图上绘制他们的路线。
我正在使用Google服务位置API,正如所描述的这里。
我的应用程序需要ACCESS_FINE_LOCATION权限,这是很直观的,我把它放在清单中:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>我还需要ACCESS_COARSE_LOCATION许可吗?我需要粗定位的用例是什么?
发布于 2016-03-08 14:13:35
我还需要ACCESS_COARSE_LOCATION许可吗?
不是的。
我需要粗定位的用例是什么?
如果您不要求ACCESS_FINE_LOCATION,但您需要位置数据,并且您愿意让这些数据是模糊的(例如,从用户的位置到城市街区附近)。在LocationManager的情况下,您只能使用NETWORK_PROVIDER;在Play服务融合位置提供程序的情况下,它们应该在内部处理这个问题。
很久很久以前,用户在安装时就被告知该应用程序是想要粗访问还是细位置访问。用户可能会接受那些想要粗略访问的应用程序,但拒绝那些希望获得良好访问权限的应用程序。
由于这方面的UI已经发生了变化,用户在确定应用程序是否需要粗略的位置权限时会遇到相当大的困难,因此我怀疑大多数开发人员只是要求提供良好的位置权限。尽管如此,如果你知道你的应用程序不需要那么高的精确度(例如,你想要天气预报的位置),请求粗略的定位许可是隐私方面的一个不错的“小菜一碟”,将来可能再次证明这是有益的。
更新2021-11-16:如果您要求使用ACCESS_FINE_LOCATION,Android12会更改用户界面.访问,选择“近似”而不是“精确”。
发布于 2016-03-08 14:14:43
不不需要使用粗糙的位置。
粗定位是指网络提供商的位置,而精细定位是指GPS提供者和网络位置提供者。所以很好的位置涵盖了这两个,你不需要使用另一个。
为了从NETWORK_PROVIDER或GPS_PROVIDER接收位置更新,您必须在Android清单文件中分别声明ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限,以请求用户的许可。如果没有这些权限,当请求位置更新时,应用程序将在运行时失败。 如果同时使用NETWORK_PROVIDER和GPS_PROVIDER,则只需要请求ACCESS_FINE_LOCATION权限,因为它包括两个提供程序的权限。ACCESS_COARSE_LOCATION的权限只允许访问NETWORK_PROVIDER。
这是供您参考的链接。
发布于 2017-09-04 07:13:26
地点可以通过两种方法来确定:
Using NETWORK_PROVIDER
Using GPS_PROVIDERhttps://stackoverflow.com/questions/35869610
复制相似问题