2

特定の場所の半径内にいるときにアクションを実行する必要があるアプリを作成しています。しかし、バッテリーを消耗するため、場所を継続的にポーリングしたくありません。

ユーザーが場所を照会する頻度を指定するオプションを配置することだけを考えました。ただし、ユーザーが設定しすぎると、その場所の近くにあるときにアプリがアクションを実行できなくなるのではないかと心配しています。

Pay With Squareに自動タブ機能があったGoogle IOセッションで、彼らが常に場所をポーリングしているかどうか、場所のクエリ間の遅延を設定しているか、バッテリーを消耗させずに効率的な3番目のオプションを持っているかはわかりません.

これにどうアプローチするかについての提案を求めたいと思います。前もって感謝します。

4

2 に答える 2

1

あなたの質問は、実際には「デバイスのバッテリーを節約しながら正確な位置測定を行うにはどうすればよいですか?」のようです。

バッテリーを節約し、適切なポジショニングを行うには、主に 2 つの方法があります。

  1. GPS を使用しないでください (実際にはバッテリーを大量に消費します)。
  2. ポーリング アクションの間隔を大きく設定する

Wi-Fi と携帯電話のデータのみを使用して、非常に良好な位置 (半径 40 ~ 150 m、多くの場合 GPS よりも優れています) を取得できます。コード内のプロバイダー選択基準として、「ACCURACY_COARSE」、「ACCURACY_LOW」、および/または「POWER_LOW」を選択するだけです。

Google Developer の Web サイトで次のリンクを参照してください。

特に、次の 2 つが挙げられます。

ユーザーの測定速度に基づいて、バッテリーを節約するポーリング間隔を選択/設定できます。ユーザーが歩いている場合 (時速 5 km 未満)、アラートを見逃すリスクなしに 30 ~ 60 秒の間隔を使用できます。ユーザーが車で移動している場合 (時速 50 km 以上)、1 ~ 10 秒の間隔を設定する必要があります。通常、位置空間の精度は非常に悪い (100 m 程度) ため、非常に高い時間(速度) 精度でポイントを「キャッチ」しようとしてもほとんど意味がありません。

これについては、Google のドキュメントも参照してください。

いずれにせよ、Google は、独自のコードを使用してバッテリーを節約しようとせず、getProviders 基準に依存することを明示的に提案しています。

于 2012-09-10T10:07:55.623 に答える
1

私がよく理解していれば、デバイスの位置が特定の場所の事前定義された半径内にあるときに、何らかのイベントをトリガーしたいと考えています。それが問題である場合は、自動化されたメカニズムである Proximity Alerts と呼ばれるものがあります。グーグルで検索するか、http: //www.javacodegeeks.com/2011/01/android-proximity-alerts-tutorial.html を試してみてください。

于 2012-09-18T15:04:34.543 に答える