2

新しい位置情報機能に関するセッション: https://developers.google.com/events/io/sessions/325337477を見て 、GEOFENCES の機能が私のアプリに適していると思います。また、デモアプリをダウンロードしましたが、これは非常に有益ですが、探している機能を提供していません. 誰かが私に説明してくれるか、アプリがオフのときに機能するジオフェンシング検出をアプリに追加する方法の例を教えてください. IO セッションを見て、私が話しているアプリ Zillo に気付いた場合。

私が今知っていることは、TRANSITIONブロードキャストを検出するバックグラウンドで常に実行されているサービスを使用したくないが、それらをマニフェストファイルに登録し、ブロードキャストレシーバークラス内で処理したいということです。GCM メッセージングを使用するときに行うようなこと。質問は次のとおりです。

マニフェストに登録する必要があるブロードキャストは何ですか? フェンスを一度だけ登録し、アプリを閉じても登録されたままになるようにするには、いつフェンスを登録する必要がありますか? このような場合にバッテリー寿命を最適化する方法についての指針はありますか? 誰かがすでにジオフェンスの半径を経験している場合、大きな建物 (たとえば 3000 ~ 5000 平方メートルの 1 階エリア) への侵入を検出することをお勧めしますか?

4

1 に答える 1

2

私はあなたが話していることを実装しました。(IntentService の代わりにブロードキャスト レシーバーを使用します)。サンプル コードから始めて、いくつかの小さな変更を加えました。これは、こちらの回答に記載されています

アプリを閉じると正常に動作するようです。

バッテリー寿命の最適化に関しては、これはすべて OS によって行われます。フェンスを登録するだけで、あとは Android が処理します。彼らはそれをうまく最適化したと思います。100 近くのフェンスを登録した後も、大幅な消耗は見られませんでした。しかし、私は広範なテストを行っていません。

半径のサイズに関しては、マップを含むサンプル アプリを作成し、緯度経度にピンを置いて、正しく見えるまで半径を調整することをお勧めします。勝手な推測ですが、半径150メートルくらいでしょうか?

--更新-- 正確さに関して、私が発見したことの詳細。私は自分自身を追跡して精度を確認するためのテスト アプリを作成し、ここ数週間運転して頻繁にチェックしていました。gps をオフにしてテストしただけです。これは、ほとんどのユーザーが外出中に遭遇するものと似ているためです。:

  • Wi-Fi 信号の近くにない屋外: あまり正確ではありません。100 ~ 200 メートル以上の距離です。
  • 屋外、Wi-Fi 信号の近く: 驚くほど正確です。10 ~ 30 メートル。私がレストランの外や Wi-Fi 信号のあるストリップ モールに座っていると、私がどこにいるかを非常によく認識します。
  • 屋内: Wi-Fi を使用しても、屋外よりも精度が低いように思われることがよくありました。30〜50メートルくらいです。
于 2013-10-24T18:38:03.743 に答える