2017-12-29 11 views
0

Oreoから、AndroidはManifestの暗黙的なブロードキャスト受信機の使用を禁止し、実行時に受信機を登録するか、代わりにJobScheduleを使用するようアドバイスしました。いくつかの例外のリストもありますが、私の状況に対する受け入れ可能な答えを見つけることはできません。API 26のandroid.app.action.ENTER_CAR_MODEの代わりに使用するもの

私は携帯電話は、私は、デバイスが入ったときを決定するためにこれを使用今まで、CARモードにあるときにのみ、バックグラウンドで実行されるサービスを持っている/車モードを終了し、開始/それに応じてサービスを停止:

 <intent-filter> 
      <action android:name="android.app.action.ENTER_CAR_MODE"/> 
      <action android:name="android.app.action.EXIT_CAR_MODE" /> 
     </intent-filter> 

私はJobScheduleビルダーを見ましたが、CARに関連するものは見つけられませんでした。私のケースでは、請求、ネットワークタイプ、その他無関係のものだけが見つかりました。

私はこれにどのように取り組んでいますか?

どのようなアイデアをお願いしますか?あなたのニーズに基づいて

+0

Android 26のアプリをテストしましたか?私はあなたが何かを変更する必要はないと思う、あなたが使用している意図が新しいルールによってブロックされていない – MatPag

+0

私はテストして、彼らはブロックされています。 –

答えて

0

(そう開いた活動なし)デバイスは、車モードに移行したときに起動すると、彼はあなたのアプリケーションで見ているユーザーがなくても、それを離れるときに終了サービス

はおそらく、バッテリーの消耗を防ぐために、新しいAPI 26の制限を避けておきたいタイプのものです。カーモードに入ったり終了したりすると、ユーザーがこれを見ながらあなたのアプリを見ている場合にのみUIの変更が生成されます。

JobSchedulerを作成してX分間隔で実行して、実際のデバイス状態をUiModeManager#getCurrentModeType()で確認し、条件が満たされた場合はフォアグラウンドサービスを開始できますが、これは現在の動作から大きく離れており、ユーザーはこれを固定通知で通知する。

+0

ユーザーがカーモードに入ったときに自動的に開始されるサービスだけのアクティビティはありません。実行時に登録するのは大丈夫ですが、サービスだから最初に実行されることはありません... –

+0

私は自分の答えを更新しました – MatPag

+0

これは本当にオプションではなく、申し訳ありませんが、私の頭の中でX分ごとに条件を繰り返し調べることは、どのように電力効率が良いのか、特定の条件が満たされた場合に実行するだけでは不明です。現実的な選択肢がない場合、私は期待どおりに動作するバージョン25をターゲットにしなければならないでしょう。 –

関連する問題