マニフェストで既にアクセス許可を要求している GPS アプリがありますACCESS_FINE_LOCATION
が、必要なライブラリ (MoPub) を追加したいと考えていますACCESS_COARSE_LOCATION
。
それでACCESS_FINE_LOCATION
十分だと思い込んでいACCESS_COARSE_LOCATION
て、マニフェストから除外できますか?
マニフェストで既にアクセス許可を要求している GPS アプリがありますACCESS_FINE_LOCATION
が、必要なライブラリ (MoPub) を追加したいと考えていますACCESS_COARSE_LOCATION
。
それでACCESS_FINE_LOCATION
十分だと思い込んでいACCESS_COARSE_LOCATION
て、マニフェストから除外できますか?
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
。
必要に応じて異なります。
賢明な許可には、ACCESS_FINE_LOCATION
が含まれACCESS_COARSE_LOCATION
ます。ただし、キャッチがあります。
ACCESS_COARSE_LOCATION
バッテリーに優しい最後の既知の場所を提供します
https://developer.android.com/training/location/retrieve-current.html#setup
たとえば、アプリが場所に基づく推奨のようなことを行う場合、最後の既知の場所は十分です。
これはGoogle Play Services に依存しています
ただし、ポケモン ゴーのようなライブ/リアルタイムの位置情報が必要な場合は、ライブ/リアルタイムの位置情報ACCESS_FINE_LOCATION
を提供します。LocationListener
Last time I checked, this is not need Google Play Servicesを使用する必要があります
違い:
https://developer.android.com/training/location/permissions#accuracy https://developer.android.com/training/location/permissions#approximate-request
両方の許可を求める必要があります。
おおよそ 約 1 マイル (1.6 km) 以内で、デバイスの位置の推定値を提供します。ACCESS_COARSE_LOCATION 権限を宣言し、ACCESS_FINE_LOCATION 権限を宣言しない場合、アプリはこのレベルの位置精度を使用します。正確 可能な限り正確なデバイスの位置の推定値を提供します。通常は約 160 フィート (50 メートル) 以内で、場合によっては 10 フィート (数メートル) 以内またはそれ以上の正確さです。ACCESS_FINE_LOCATION 権限を宣言すると、アプリはこのレベルの位置精度を使用します。
ユーザーがおおよその位置情報へのアクセス許可を付与した場合、アプリが宣言する位置情報のアクセス許可に関係なく、アプリはおおよその位置情報にのみアクセスできます。
ユーザーがおおよその位置情報へのアクセスのみを許可している場合でも、アプリは動作するはずです。アプリの機能が ACCESS_FINE_LOCATION パーミッションを使用して正確な位置情報へのアクセスを絶対に必要とする場合は、アプリが正確な位置情報にアクセスできるようにするようユーザーに依頼できます。``
次に、Android 12 でパーミッションが変更されます
Android 12 (API レベル 31) 以降では、アプリが ACCESS_FINE_LOCATION 実行時パーミッションをリクエストする場合でも、ユーザーはアプリがおおよその位置情報のみを取得するようにリクエストできます。
この潜在的なユーザーの行動を処理するには、ACCESS_FINE_LOCATION パーミッションを単独で要求しないでください。代わりに、単一のランタイム リクエストで ACCESS_FINE_LOCATION 権限と ACCESS_COARSE_LOCATION 権限の両方をリクエストします。ACCESS_FINE_LOCATION のみをリクエストしようとすると、システムは Android 12 の一部のリリースでリクエストを無視します。