1

こんにちは、アプリケーションでロケーション用の Google Play サービスを実装しました (Google のサンプルとほぼ同じコードを使用しています)。テスト後、アプリケーションは期待どおりに動作しないようです。

精度を PRIORITY_BALANCED_POWER_ACCURACYまたはに設定するPRIORITY_NO_POWERと、Wi-Fi に接続していない場合、The Location は単に何もフェッチしません。

そして、場所が取得される時間は、設定した間隔の少なくとも 2 倍ですmLocationRequest.setInterval()

他にこの問題を抱えている人はいますか? または、ここで何か不足していますか?

ありがとうございました。

4

2 に答える 2

4

ドキュメントを見てください。太字の強調は私のものです。

反対に、電力への影響を無視したいが、利用可能な場合は位置情報の更新を受け取りたい場合は、setPriority(int) を PRIORITY_NO_POWER に設定して位置情報リクエストを作成します。このリクエストを使用すると、アプリケーションは位置情報の更新をトリガーしません (したがって、電力の非難を受けません) が、他のアプリケーションによってトリガーされた位置情報を受け取ります。これは、場所に関する確固たる要件がないアプリケーションに適していますが、利用可能な場合は利用できます。

2 番目の部分は、PRIORITY_BALANCED_POWER_ACCURACY です。ドキュメントに記載されているように、その部分は応答していないようです。もっと調べる必要があります。

これら 2 つの両極端の中間にあるのは、非常に一般的な使用例です。アプリケーションは、指定された間隔で確実に更新を受信する必要があり、利用可能な場合はより高速に受信できますが、それでも低電力の影響が必要です。これらのアプリケーションでは、PRIORITY_BALANCED_POWER_ACCURACY を高速な setFastestInterval(long) (1 分など) と低速な setInterval(long) (60 分など) と組み合わせて検討する必要があります。setInterval(long) で設定された間隔の電力の責任のみが割り当てられますが、setFastestInterval(long) までのレートで他のアプリケーションによってトリガーされた場所を引き続き受信できます。このスタイルの要求は、バックグラウンドでの使用を含む、多くの位置認識アプリケーションに適しています。

于 2013-05-30T23:31:20.380 に答える
0

わかりました、私は問題を見つけました、

のみを追加しました <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>が、追加しませんでした <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>(これは GPS 専用だと思っていました) は間違っていました。

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>、Android のドキュメントに従って、市区町村レベルの精度を提供します。

位置情報サービスを使用するアプリは、位置情報の許可を要求する必要があります。Android には、ACCESS_COARSE_LOCATION と ACCESS_FINE_LOCATION の 2 つの場所のアクセス許可があります。選択した権限によって、現在地の精度が制御されます。大まかな位置情報の許可のみを要求した場合、位置情報サービスは返された位置情報を難読化し、市区町村とほぼ同等の精度にします。

したがって、私の場合、短距離では常に同じ場所に移動していました。

を追加する <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>と問題が解決しました。

于 2013-06-02T06:26:51.050 に答える