1

特定の基準を使用した getBestProvider メソッドの選択アルゴリズムに疑問があります。

方位と速度の精度が中、高、または低のいずれかに設定されている場合。GPS プロバイダーは、ネットワーク プロバイダーにはこれらのパラメーターに関連する情報がないため、基準に最適なプロバイダーとしてデフォルトで選択されます。

ただし、ベアリングの精度または速度の精度を有効にせずに設定しても (パラメーターを有効にするフィールドを true に設定); 有効になっていないため、方位や速度が 0 として返される場合でも、常に GPS プロバイダーが呼び出されます。

したがって、この場合、ネットワークプロバイダーを代わりに最適なプロバイダーとして使用しないでください.

GPSはネットワークプロバイダーよりも多くの電力を使用するため、誰かがそれを使用しようとした場合、これはデバイスのバッテリー寿命に影響を与えますか.

簡単な例: criteriaobject.setBearingRequired (true);

criteriaobject.setBearingAccuracy (Criteria.LOW_ACCURACY);

locationmanagerobject.getBestProvider (基準オブジェクト、真); // 正常な GPS を返します

でも;

criteriaobject.setBearingAccuracy (Criteria.LOW_ACCURACY);

locationmanagerobject.getBestProvider (基準オブジェクト、真); // 再び GPS を返しますが、これは方位が有効になっていないため意味がありません。返された場所には方位がまったくないため、NETWORK が最良のプロバイダーのように見えますが、これは機能しません。

これについてのアイデアや論理的な理由はありますか? または、そのような実装により、デバイスのバッテリー寿命に影響がある場合は?

4

3 に答える 3

0

方位精度を設定する必要があります=> NO_REQUIREMENTを設定すると、最適なプロバイダーとしてネットワークが取得されます

ACCURACY_HIGHの代わりに方位精度=> ACCURACY_LOWを設定すると、位置修正時間短縮されます

于 2013-11-28T06:11:31.877 に答える
0

Google Play Servicesを使用すると、開発者は位置情報ベースのアプリを簡単に開発できます。CoreLocation が iOS で行うのと同じように、単一のロケーション プロバイダーがすべてのニーズを処理します。GPS か別のロケーションかを選択する必要はありません。http://developer.android.com/reference/com/google を参照してください。 /android/gms/location/package-summary.html

于 2013-08-05T17:36:44.267 に答える