私は、デバイスがブートされている限り、バックグラウンドで実行されるロケーションサービスを持っています。 LocationManager requestLocationUpdateメソッドを呼び出してネットワークとGPSプロバイダーの更新を要求しましたが、ロケーションサービスを有効または無効にしてMy Location設定ページを変更すると、onProviderEnabledまたはProviderDisabledは呼び出されません。だから私は、バックグラウンドサービスがユーザーが場所の設定を変更するたびにどのように通知されるのか知りたいですか?ブロードキャストメッセージをキャッシュする受信機モードでそれを行うことはできますか?アンドロイド:マイロケーション設定ロケーションサービスがユーザによって有効または無効にされたときに気づく方法
答えて
はい、GPSのオン/オフブロードキャストをリッスンするブロードキャスト受信クラスをサービス内に実装することができます。 GPSがオンまたはオフになっても、onProviderEnabled()メソッドは呼び出されず、GpsStatus.OnGpsStatusChanged()メソッドが呼び出されます。
GPS_EVENT_STARTED GPS_EVENT_STOPPED
ブロードキャストレシーバーを実装する方法についてBroadcastReceiver APIを参照してください:
GPSが変更されたときに送られた放送は、イベント値を持っています。
Johnさんにお返事ありがとうございますが、あなたが言及した方法はGPS設定のみです。ユーザーがネットワークプロバイダのみを有効にした場合はどうなりますか? – user591387
gps設定の変更は検出できますが、ネットワーク設定の変更は検出できません。 – user591387
ネットワークプロバイダが有効か無効かを検出するには、ConnectivityManagerクラスを使用する必要があります。 http://developer.android.com/reference/android/net/ConnectivityManager.html これはブロードキャストを送信しますCONNECTIVITY_ACTION定数は、別のネットワークが変更されたときに通知しますが、モバイル・ネットワークが使用不可の場合はString定数ACTION_BACKGROUND_DATA_SETTING_CHANGEDとなります。詳細な情報を見つけるには、ConnectivityManagerのメソッドを使用する必要があります。 –
- 1. パースペクティブに基づいてアクションセットを有効または無効にする方法
- 2. JavaScriptによって無効にされたボタンを有効にします
- 3. NotificationChannelがユーザ(API 26)によって無効にされた場合の定義方法は?
- 4. 要素が無効/有効になったときに検証を有効または無効にする方法
- 5. Silverstripe - 設定でモジュールを有効または無効にする
- 6. モデルとJqueryに基づいて有効または無効にします
- 7. セレンでボタンが有効または無効になる方法
- 8. アンドロイド:無効にしたボタンをクリックして有効にする方法
- 9. onClickListenerによってsetClickable()が無効にされました
- 10. コンポーネントを有効または無効にする方法は?
- 11. 親コントロールが有効/無効になっている場合に、その場で作成されたカスタムコントロールを有効/無効にする方法
- 12. 一緒に働く方法ブートストラップドロップダウンドロップダウンを有効にしたホバーは無効になっていますか?
- 13. jenkinsジョブのソナー設定を無効にして有効にする方法は?
- 14. フラットリストのスクロールを有効または無効にする方法
- 15. RShinyのアクションボタンを有効または無効にする方法
- 16. ページスクロールを有効または無効にする方法
- 17. uitableviewでセルを有効または無効にする方法
- 18. PyQt - スペルチェックを有効または無効にする方法
- 19. セレンテストケースでジオロケーションを有効または無効にする方法
- 20. IsProviderEnabledは、常にロケーションサービスが有効か無効かを返します。
- 21. 有効または無効に基づくPythonの複数検索
- 22. コードによるロケーションサービスの有効化
- 23. ユーザがオプションを有効/無効にできるようにする
- 24. 時間カウンターに基づいて、anglejsを使用してボタンを有効または無効にする方法
- 25. 重要なロケーション変更サービスは、ロケーションサービスを有効または無効にするユーザーに依存しますか?
- 26. Springでスケジュールされたジョブを条件付きで有効または無効にする方法は?
- 27. angularjsの値に基づいてボタンを有効または無効にする方法は?
- 28. アンドロイドで自動キーロックを有効/無効にする方法
- 29. チェックボックスに基づいて送信ボタンを有効/無効にする方法は?
- 30. 有効/無効または有効/無効にする方法の命名規則
"私は、デバイスが起動されている限り、バックグラウンドで実行されるロケーションサービスを持っています。" - しないでください。 'RequestLocationUpdates()'の 'PendingIntent'バージョンを使用するか、' AlarmManager'とmy ['LocationPoller'](https://github.com/commonsguy/cwac-locpoll)などを使ってポーリングしてください。 – CommonsWare
正直言って、バックグラウンドで常時稼働している位置情報サービスは決して良い考えではありません。 GPSとデータは、最もバッテリーを使い果たしている2つのサービスであり、これらのポーリングを継続すると、通常よりも約4〜5倍速い速度でデバイスが排水されます。あなたがこれを実装しようとしている場合は、定期的に位置の更新をポーリングする必要があります。 –