Android Auto启动时的意图过滤器

时间:2019-01-06 14:22:31

标签: android android-auto

是否存在用于指示Android Auto启动时间的意图过滤器?我正在构建一个启动后台线程的应用程序,我想使用蓝牙连接到设备以从自定义硬件获得对主机的远程控制。

1 个答案:

答案 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"); 
        } 
    } 
}

从上面链接的文档中也应该注意到这一点...

  

此外,用户可以手动将系统切换到汽车模式,而无需实际在码头上。在汽车模式下-无论是通过用户手动操作还是实际放置在扩展坞中-都会显示一条通知,允许用户退出扩展坞模式。因此,此处表示的停靠模式可能与基础停靠事件广播的当前状态不同。