如果我已经有ACCESS_FINE_LOCATION,我可以省略ACCESS_COARSE_LOCATION吗?

时间:2013-03-09 12:37:07

标签: android geolocation android-permissions

我有一个已经在清单中请求ACCESS_FINE_LOCATION权限的GPS应用程序,现在我想添加一个需要ACCESS_COARSE_LOCATION的库(MoPub)。

我认为ACCESS_FINE_LOCATION已经足够了,我可以从我的清单中遗漏ACCESS_COARSE_LOCATION吗?

2 个答案:

答案 0 :(得分:127)

https://developer.android.com/guide/topics/location/strategies.html#Permission

  

注意:如果您同时使用NETWORK_PROVIDER和GPS_PROVIDER,则只需要请求ACCESS_FINE_LOCATION权限,因为它包含两个提供商的权限。 (ACCESS_COARSE_LOCATION的权限仅包含NETWORK_PROVIDER的权限。)

简而言之:是的,如果您已定义ACCESS_COARSE_LOCATION,则不需要ACCESS_FINE_LOCATION

答案 1 :(得分:9)

取决于您的需求。

明确许可,ACCESS_FINE_LOCATION包括ACCESS_COARSE_LOCATION。但是,有一个问题:

ACCESS_COARSE_LOCATION为您提供最后知道的电池友好位置 N3399
例如,如果您的应用程序执行基于位置的建议,则最后知道的位置就足够了 这具有依赖于Google Play服务

但是,如果您需要像Pokemon Go这样的实时/实时位置,请使用ACCESS_FINE_LOCATION
它为您提供实时/实时位置。您需要使用LocationListener
我上次检查时,这不需要Google Play服务