是否存在用于指示Android Auto启动时间的意图过滤器?我正在构建一个启动后台线程的应用程序,我想使用蓝牙连接到设备以从自定义硬件获得对主机的远程控制。
答案 0 :(得分:1)
您可以在广播接收器中使用ACTION_ENTER_CAR_MODE来监听Android Auto启动和连接的时间。请记住,ACTION_ENTER_CAR_MODE并非Android Auto独有,它仅表示操作系统处于汽车模式,可能涉及或可能不涉及Android Auto。
此外,为了满足Android O的要求,您需要通过在活动中注册接收者来明确注册接收者。将其注册到活动中后,它不会在与Auto的第一个连接上接收广播,而只有在创建活动之后然后在每个连接上才接收广播。
<receiver
android:name=".CarModeReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.app.action.ENTER_CAR_MODE"/>
<action android:name="android.app.action.EXIT_CAR_MODE"/>
</intent-filter>
</receiver>
然后在执行接收器...
public class CarModeReceiver extends BroadcastReceiver {
@Override public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (UiModeManager.ACTION_ENTER_CAR_MODE.equals(action)) {
Log.d("CarModeReceiver", "Entered Car Mode");
} else if (UiModeManager.ACTION_EXIT_CAR_MODE.equals(action)) {
Log.d("CarModeReceiver", "Exited Car Mode");
}
}
}
从上面链接的文档中也应该注意到这一点...
此外,用户可以手动将系统切换到汽车模式,而无需实际在码头上。在汽车模式下-无论是通过用户手动操作还是实际放置在扩展坞中-都会显示一条通知,允许用户退出扩展坞模式。因此,此处表示的停靠模式可能与基础停靠事件广播的当前状态不同。