15

システムはそれらを永続化していますか、それとも再起動後に再度追加する必要がありますか? https://developer.android.com/training/location/geofencing.htmlのドキュメントでそれについて何も見つかりませんでした

4

3 に答える 3

19

ジオフェンスは再起動時に保持されません。

BOOT_COMPLETEDアクションをリッスンし、ジオフェンスを再度追加する必要があります。

注:アプリが外部ストレージ (SD カード)にインストールされている場合、起動完了アクションは表示されません。そのため、 で指定する必要android:installLocation="internalOnly"がありますmanifest tag。これは、Android デバイスが外部ストレージを設定する前にBOOT_COMPLETED アクションをブロードキャストするためです。

于 2013-12-04T05:08:17.310 に答える
5

これを確認するドキュメントは見つかりませんでしたが、私自身の実験では、再起動しても保持されないことが示されています。

私のセットアップは次のとおりです。

  • アプリケーションを実行
  • アプリケーションは、最初の起動時に NEVER_EXPIRE としてのみさまざまなジオフェンスを設定します
  • アプリケーションを終了
  • フェンスで囲まれた地域で電話を使用する
  • フェンスが IntentService に送信される保留中のインテントをトリガーすることを確認します
  • 地域を離れる
  • 電話を再起動する
  • 地域に再び入る
  • 保留中のインテントが IntentService に送信されない

これについて Google の誰かから詳しい情報をお持ちの場合は、コメントしてください。

于 2013-10-17T04:26:17.557 に答える
-1

どのデータを保持しますか? デバイスのジオフェンス リージョンですか、それとも Google Play Service Location API によって保存されたジオフェンス リージョンですか?

デバイスは地域 (緯度、経度、半径で定義) を Google Play サービスに (LocationClient 経由で) 登録する必要があると思います。また、有効期限、通知を受け取る遷移タイプ、および通知元のインテントを提供する必要があります。

このリージョンは、アプリではなく (リモートで) 保存されます。有効期限が過ぎると、Google Play Service によって自動的に削除されます。NEVER_EXPIRE として設定することもできます。リージョンがまだ期限切れになっていない場合、Google Play Service は (addGeofences を呼び出すときに送信するインテントを介して) アプリに通知します。

地域のソース (緯度、経度、半径) は実装次第です。

于 2013-07-02T01:26:11.737 に答える