2016-07-23 50 views
0

現在、アプリケーションに位置フェンスを登録しています(documentationでの説明と同様)。ログを使用すると、登録コールバックとブロードキャスト受信者が正しく呼び出されているのがわかります。しかし、アプリケーションを再実行すると、これらは起動されません。私の電話機をリブートした後、再び動作します。フェンスが登録されていません - Google認識API

フェンスをバックグラウンドでも(レシーバはアクティビティに関連付けられていなくても)発射したいので、私はフェンスの登録を解除しません。

¿アプリケーションの開発中にアプリケーションを何度も再実行しても、この問題を解決する方法はありますか? ¿ユーザーがアプリケーションを再インストールまたは更新するときにフェンスが正しく登録されるようにするにはどうすればよいですか?

私はlocationFencesは私がサービスで、サービスができるので、フェンスの取り扱いを行ってきたこの

singleLocationFence = LocationFence.entering(latitude, longitude, FENCE_RADIUS); 

答えて

1

のように作成されたLocationFenceオブジェクトのコレクションです

AwarenessFence allLocations = AwarenessFence.or(locationFences); 

を使用してAwarenessFenceを作成しますそれはうまく動作するバックグラウンドで実行します。 "onDestroy"が呼び出された場合、私はフェンスの登録を解除していましたので、オペレーションシステムはこれらのフェンスをもう観察する必要はありません。 このサービスは、一度に1つのサービスでしか使用できないため、「再実行」問題を解決しました。

AwarenessFence allLocations = AwarenessFence.or(locationFences); 

その作業と

あなたの次のポイントは、私は、AwarenessFenceはすべてBeaconFencesの親であるため、より良い

AwarenessFence allLocations = locationFences; 

を使用TimeFence

AwarenessFence allLocations = AwarenessFence.or(TimeFence.inInterval(new Date()), Long.MAX_VALUE)); 

しかしでそれを試してみましたGeofences、TimeFencee(...)は、認識APIを形成します。

+0

サービスでフェンスの取り扱いをどのように管理しましたか?インテントサービスを使用していると仮定していますか? 私は意図的に動作しているアクティビティの認識にインテントサービスを使用していますが、上記の@Nicolasと同じ問題が発生しています。これはスタックポストです。http://stackoverflow.com/questions/40163430/google-awareness-api-callback -not-returning-statuss –

+0

罰金、私が逃していたのは、フェンスの登録を解除することでした。しかし、私はそれらをサービスのライフサイクルに付けることはできません。データベースを変更したためにそれらを更新したら、既存の登録を解除して直ちに新しいものを登録します。 –

0

私はAwareness APIでフェンスを登録した後、アプリを再実行した場合やアプリがバックグラウンドにある場合でもコールバックを受信したいと考えています。 質問はこれを明確にしていませんが、あなたがドキュメントに従っているならば、ブロードキャスト受信者dynamicallyを登録していると思います。

<receiver android:name="MyReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED"> 
     </action> 
    </intent-filter> 
</receiver> 

この方法では、あなたはonDestroy()内の受信機の登録を解除する必要はありません、そして、あなたのアプリが表示されます:

あなたはsomething like this in the manifest fileを追加することで、あなたの放送受信機の静的登録を行うことでつもり何を達成することができますアプリが停止または更新されている場合でも、フェンスを登録している場合はフェンスコールバック。

関連する問題