AndroidAuto连接流程及代码实现
文章目录
AndroidAuto介绍
AndroidAuto是google开发用于安卓手机与车机互联的代码实现方案。AndroidAuto使用手机来渲染视频,然后投射到车机屏幕上以供用户使用,用户通过车机进行人机交互。
Android Auto provides a bridge between a mobile device and a vehicle that enables the driver to access the capabilities of a mobile device through the physical human machine interface (HMI) controls provided by the vehicle. The mobile device manages all user interface (UI), software logic, connectivity, and compute power for mobile device applications and projects these applications into the vehicle.
有线连接流程
AOA协议
AOA协议(Android开放配件协议AOA(Android Open Accessory Protocol))。AOA协议是Google公司推出的用于实现Android设备与外围设备之间USB通信的协议。
车机端需要尝试AOAP初始化,为了正确的检测和协商USB模式的切换车机和手机需要以下流程:
a 车机尝试用AOAP连接手机并且把自己作为AOAP accessory。
b 如果手机支持AOAP,它会重枚举为AOAP模式;如果手机不支持AOAP,它会忽略AOAP握手,允许车机协商其他USB模式或者充电模式。
1、发送 51 控制请求(“获取协议”)以确定设备是否支持 Android 配件协议。如果设备支持协议,则返回一个非零数字,代表所支持的协议版本。该控制请求为端点 0 上的请求
参数类型: | 值 |
---|---|
requestType: | USB_DIR_IN 、 USB_TYPE_VENDOR |
value: | 51 |
index: | 0 |
value: | 0 |
data: | protocol version number (16 bits little endian sent from the device to the accessory) |
2、如果设备返回所支持的协议版本,则向设备发送含标识字符串信息的控制请求。该信息让设备可以确定适合配件的应用(如果没有适合配件的应用,则向用户呈现一个网址