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


89

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

私はそれACCESS_FINE_LOCATIONで十分だと思い込んで正しいのACCESS_COARSE_LOCATIONでしょうか、そしてマニフェストから除外することができますか?

回答:


153

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


13
1しかし、奇妙なことに、Googleマップドキュメントの両方を使用することをお勧めします。developers.google.com/maps/documentation/android/...
アレックス

3
おそらく、ネットワーク機能はあるがGPSがない電話の場合はどうでしょうか。
Nicklas A.

2
@NicklasA。論理的には、「細かい」に「粗い」が含まれているという事実に影響を与えるべきではありません。欠落しているプロバイダーは単に欠落しているだけです。また、その場合に必要な場合は、Googleドキュメントがそう言うことを期待します。
toolmakerSteve 2015

9
@alexのコメントの更新:Googleマップでは、1つの権限のみをリクエストする必要があると明示的に示されています。developers.google.com/maps/documentation/android-api/location
Klox

15

あなたの必要性に依存します。

許可に関してACCESS_FINE_LOCATIONは、を含みACCESS_COARSE_LOCATIONます。ただし、落とし穴があります。

ACCESS_COARSE_LOCATIONバッテリーに優しい最後の既知の場所を提供します https://developer.android.com/training/location/retrieve-current.html#setup
たとえば、アプリが場所ベースの推奨事項のようなことを行う場合、最後の既知の場所は十分に良い。
これはGooglePlay開発者サービスに依存しています

ただし、Pokemon Goのようなライブ/リアルタイムの場所が必要な場合は、ACCESS_FINE_LOCATION
それを使用するとライブ/リアルタイムの場所が得られます。LocationListener
前回チェックしたときに使用する必要があります。これにはGooglePlay開発者サービスは必要ありません。


この許可はBluetoothLEスキャンに役立ちますか?
IgorGanapolsky 2017

@ericn多分あなたは場所の問題で私を助けることができますか?stackoverflow.com/questions/63917764/…NMEAの文章を聞いているとき、私は非常に奇妙な行動をします。
Viktor Apoyan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.