Android では、ブロードキャスト レシーバー メカニズムを介して、特定のイベント (wifi スキャンの結果が利用可能、起動プロセスが完了したなど) が発生したときに、現在実行されていないアプリに通知できます。バックグラウンドで実行されていないなど、Worklight アプリが実行されていない場合でも、wifi/geo トリガーを呼び出すことができるようにすることはできますか?
2 に答える
アプリケーションがまったく実行されていない (バックグラウンドであっても) ときにトリガーをアクティブにすることは、Worklight API ではサポートされていません。Worklight Android Native SDK を cmarcelk の提案と一緒に試して使用することができます。または、ネイティブ サービス内で Worklight Android トリガーをブロードキャスト レシーバー メカニズムと一緒に使用して、起動時に自動的に実行されるようにすることもできます。その後、Intent を使用して、トリガー コールバックからアプリケーションを開くことができます。
アプリに通知するwifi /接続の変更については、標準のシステムイベントであるため、可能に見えます。ブロードキャスト レシーバーを実装する必要があるため、カスタム ネイティブ コードが必要になる可能性があります。また、アプリの AndroidManifest.xml ファイルにレシーバーを登録する必要があります。http://developer.android.com/reference/android/net/ConnectivityManager.htmlとhttp://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/をご覧ください。
位置情報トリガーに関しては、探しているトリガーの種類が不明です。これは私がAndroidのドキュメントで見るすべてです:http: //developer.android.com/reference/android/location/GpsStatus.htmlとhttp://developer.android.com/reference/android/contentの標準ブロードキャストアクション/Intent.html#定数
ジオフェンシングのようなものを探している場合、イベントを発生させるタイミングを決定するためにアプリケーション ロジックが必要になるため、アプリまたはサービスが実行されている必要があります。では、ブロードキャスト レシーバーの onReceive() メソッドは geo イベントで呼び出される可能性がありますが、誰がそのイベントを起動するのでしょうか?