6

私のアプリは非常に大まかな位置データのみを必要とするため、最初にマニフェストのアクセス許可をACCESS_COARSE_LOCATIONに設定し、位置リスナーをに設定しましたNETWORK_PROVIDER。これにより、必要な大まかな位置情報の見積もりが得られましたが、Google位置情報サービスがオンになっている場合のみです。

ユーザーがGPSのみを有効にしている場合でも、ユーザーの位置の大まかな見積もりを受け取ることを期待していました。しかし、から位置情報を取得する唯一の方法は、許可GPS_PROVIDERを使用することであるように思われます。ACCESS_FINE_LOCATION

ACCESS_FINE_LOCATIONでは、GPSのみを有効にすると、アプリは許可がない限り位置情報を受信できないというのは本当ですか?言い換えれば、アプリが許可GPS_PROVIDERしか持っていない場合、大まかな位置の見積もりを送信することはできませんか?ACCESS_COARSE_LOCATION

4

1 に答える 1

6

では、GPSのみを有効にすると、アプリはACCESS_FINE_LOCATION権限がない限り、位置情報を受信できないというのは本当ですか?

一般的に言えば、そうです。

のドキュメントをLocationManager引用する:

アプリケーションに大まかな権限しかない場合は、GPSまたはパッシブロケーションプロバイダーにアクセスできません。他のプロバイダーは引き続き位置情報の結果を返しますが、更新レートは抑制され、正確な位置は大まかなレベルの精度で難読化されます。

 

つまり、アプリにACCESS_COARSE_LOCATION権限しかない場合、GPS_PROVIDERは大まかな位置推定を送信できませんか?

Android 4.2リリースノートの引用:

以前のバージョンのAndroidと比較すると、アプリがACCESS_COARSE_LOCATION権限をリクエストしているが、ACCESS_FINE_LOCATION権限をリクエストしていない場合、ユーザーの位置情報の結果の精度が低下する可能性があります。アプリが粗い場所(細かい場所ではない)の許可を要求したときにユーザーのプライバシーの期待に応えるために、システムは街区よりも正確なユーザーの場所の推定値を提供しません。

ただし、これはからの「GPSにアクセスできなくなります」というステートメントに取って代わるものではないと思いますLocationManager。これは、NETWORK_PROVIDERデータが正確すぎると見なされた場合、データが禁止される可能性があることを意味すると思います。

于 2013-01-22T14:47:00.037 に答える