問題タブ [android-doze]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android、モードidle_maintenanceでタスクを検出して実行する方法は?
デバイスが DOZE モードのときに追跡情報を送信する必要があります。
page monitoring-device-stateによると、idle と idle_maintenance があり、idle_maintenance ウィンドウにあるとき、アプリケーションはタスクを実行できることがわかりました。私の場合、追跡情報を取得してサーバーに送信したいのですが、idle または idle_maintenance ウィンドウがあるとアプリがブロック状態になります。
モード idle_maintenance でタスクを実行するにはどうすればよいですか?
また
どのライブラリを使用できますか?
また
例はありますか?
まず第一に、ありがとう。
android - デバイスの移動中に居眠りモードを無効にするにはどうすればよいですか?
アプリがオフの場合でも、特定の間隔で位置をポーリングする必要があるアプリをコーディングしています。私は現在、仕事を成し遂げるために Firebase JobDispatcher を使用しています。コードは次のとおりです。
私の要件は次のとおりです。
1)電話が充電中の場合、場所を継続的にポーリングする必要があります(これは発生しています)
2) 電話が同じ場所に静止している場合、アプリはポーリングしてはなりません (これは、アプリが居眠りモードに入ったときにも発生します)
3) 移動中の車の中で携帯電話が固定されている場合 (または、自転車を運転しているときに携帯電話が誰かのポケットに固定されている場合)、場所を継続的にポーリングする必要があります (これは行われておらず、どちらが問題)。
電話が移動中の車内に置かれている場合、ジョブディスパッチャーにポーリングさせるにはどうすればよいですか?
android - PowerManager.isIgnoringBatteryOptimizations は、「最適化されていないアプリ」から削除されても常に true を返します
GPS追跡を行い、バックグラウンドで車へのOBDII接続を確立できるマイレージログブックアプリがあります。
バックグラウンド(実際にはフォアグラウンド)サービスが停止する可能性があるため、アプリが居眠りでホワイトリストに登録されていない場合にユーザーに通知するポップアップを表示したいと思います...
そうです:
しかし、PowerManager.isIgnoringBatteryOptimizations は、「最適化されていないアプリ」から再度削除されても、常に「true」を返します。アプリをアンインストールした場合にのみ、「false」が再び返されます... Galaxy Note 8 (Android 8.0) および Emulator 8.1 でテスト済み
質問は簡単です: これはバグですか? または、ホワイトリストからアプリを削除して、PowerManager.isIgnoringBatteryOptimizations が再び「false」を返すようにする方法は?
android - FCM からの起動アクティビティ
私のアプリケーションでは、優先度の高い FCM メッセージを受信したときに、アクティビティを起動して画面をオンにする必要があります。これは、ユーザーにとって非常に重要なアラーム アクティビティです。ほとんどの Android デバイスでは、コードは正常に機能しています。ただし、一部の Huawei または LG デバイスでは、デバイスが Doze モードの場合、またはポケット (近接センサー) にある場合、アクティビティは開始されません。動作は、目覚まし時計、通話などと似ているはずです。これが私のコードです:
FirebaseMessagingService:
アラーム アクティビティ:
アクティビティを開始する前にSCREEN_BRIGHT_WAKE_LOCKを使用したかったのですが、廃止されました。
android - Doze モードでのフォアグラウンド サービスでのタスクの繰り返し
私は、居眠りモードでも完了するはずの一定の間隔(2分後としましょう)で繰り返しタスクを実行する必要があるアプリケーションに取り組んでいます。私の観察は以下に記載されています-
- アラーム (RTC フラグを使用) を使用して繰り返しタスクを実行することは正確ではありません。Android システムがアラームをバッチ処理します。RTC_WAKEUP を使用すると、RTC よりも優れていますが、Android Vitals に WAKEUP カウントが表示され、良くありません。
- ジョブスケジューラは便利ですが、2 分のような短い間隔では機能しません。Firebase Jobdispatcher を試してみましたが、これもあまり正確ではありません。2 分のトリガー時間でジョブを開始しましたが、10 ~ 20 分の範囲で変化していました。
- フォアグラウンド サービスでタスクを繰り返すためにハンドラーとタイマーを使用しました。このシナリオでは、フォアグラウンド サービスは引き続き Doze モードで実行されますが、ハンドラーとタイマーはタスクの繰り返しを停止します。Handlers.postDelayed() について読んだところ、これは居眠りモードの影響も受けていることがわかりました。
この繰り返しタスクの WAKELOCK を取得したくありません。
居眠りモードで短い間隔で繰り返しタスクを実行できる、より良い/クリーンな方法を提案してもらえますか?
参考のため -
Android:繰り返しのバックグラウンド タスク Android Oreo を準備するための最良の方法は何ですか?
Doze モードは、部分的/完全なウェイクロックの有無にかかわらず、バックグラウンド/フォアグラウンド サービスにどのように影響しますか?
mqtt - Doze モードと MQTT Connectionlos
Android デバイスが Doze モードに入ると、MQTT で connectionlost Callback がトリガーされます
私が今まで試したことは何ですか?
1.アプリが居眠りモードに入っているかどうかを検出するための書き込み放送受信機。
2.入ったら部分WAKE LOCKします。
ここでの私の質問は?
アプリ ユーザーが通知を見逃さないように、アプリを常にインターネットに接続する方法はありますか。