特定の基準を使用した 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 が最良のプロバイダーのように見えますが、これは機能しません。
これについてのアイデアや論理的な理由はありますか? または、そのような実装により、デバイスのバッテリー寿命に影響がある場合は?