在API 26中使用什么而不是android.app.action.ENTER_CAR_MODE

时间:2017-12-29 10:29:00

标签: android

从Oreo开始,Android禁止在Manifest中使用隐式广播接收器,并建议在运行时注册接收器,或者使用JobSchedule。还列出了一些例外情况,但我无法找到可接受的答案。

我有一项服务只在手机处于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有关的内容,只有充电,网络类型以及其他与我无关的内容。

我应该如何解决这个问题?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据您的需要

  

一种服务,它在设备进入汽车模式时启动,在用户离开时结束,而不会让用户在您的应用程序中观看(因此没有打开活动)

可能是Google希望通过新的API 26限制来避免电池耗尽的类型。如果用户在执行此操作时正在观看您的应用,则进入和退出汽车模式应仅生成UI的更改。

你可以创建一个<div id="myTest"></div>并以X分钟间隔运行它以检查JobScheduler的实际设备条件,并在满足条件时启动前台服务,但这距离很远您当前的行为将通过固定通知通知用户。