web-dev-qa-db-ja.com

ACCESS_FINE_LOCATIONが既にある場合、ACCESS_COARSE_LOCATIONを省略できますか?

マニフェストでACCESS_FINE_LOCATION許可を既に要求しているGPSアプリがありますが、ACCESS_COARSE_LOCATIONを必要とするライブラリ(MoPub)を追加したいと思います。

ACCESS_FINE_LOCATIONで十分であり、マニフェストからACCESS_COARSE_LOCATIONを省くことができると仮定して正しいですか?

76
charliefortune

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は必要ありません。

129

ニーズに依存します。

許可に関しては、ACCESS_FINE_LOCATIONにはACCESS_COARSE_LOCATIONが含まれます。ただし、キャッチがあります。

ACCESS_COARSE_LOCATIONは、バッテリーに優しい最新の位置情報を提供します https://developer.Android.com/training/location/retrieve-current.html#setup
たとえば、アプリが場所ベースの推奨などを実行する場合、最後に認識された場所で十分です。
これは、Google Play開発者サービスに依存関係があります

ただし、Pokemon Goなどのライブ/リアルタイムの場所などが必要な場合は、ACCESS_FINE_LOCATIONを使用します
ライブ/リアルタイムの位置情報を提供します。 LocationListenerを使用する必要があります
前回チェックしたとき、これはGoogle Play Servicesを必要としません

10
ericn