正能量直播网站,海淀教育互动平台,个人做房产网站有哪些资料,营销型网站单页Android Open Accessory Protocol 1.0#xff08;AOA 协议 1.0#xff09;
Android USB 配件必须遵从 Android Open Accessory#xff08;AOA#xff09;协议#xff0c;该协议定义了配件如何检测和建立与 Android 设备的通信。配件应执行以下步骤#xff1a;
1. 等待并…Android Open Accessory Protocol 1.0AOA 协议 1.0
Android USB 配件必须遵从 Android Open AccessoryAOA协议该协议定义了配件如何检测和建立与 Android 设备的通信。配件应执行以下步骤
1. 等待并检测连接的设备
2. 确定设备的配件模式支持
3. 尝试以配件模式下启动设备如果需要
4. 如果设备支持 AOA与设备建立通信
以下部分介绍如何实现这些步骤。
Note在开发通过 USB 连接到 Android 设备的新配件时请使用 AOAv2。
等待并检测连接的设备
配件应该连续检查连接的 Android 设备。连接设备时配件应确定设备是否支持配件模式。
确定配件模式支持
当连接 Android 设备时它可以是以下三种状态之一
1. 支持 Android 配件模式并已经处于配件模式。
2. 支持 Android 配件模式但不处于配件模式。
3. 不支持 Android 配件模式。 在初始连接期间附件应检查连接设备的 USB 设备描述符的厂商 ID 和产品 ID。厂商 ID 应该匹配 Google 的 ID0x18D1。如果设备已经处于配件模式产品 ID 应为0x2D00 或 0x2D01配件可以使用自己的通信协议通过批量传输端点 establish communication with the device设备不需要在附件模式下启动。
Note0x2D00 保留给支持配件模式的 Android 设备。0x2D01 保留用于支持配件模式的设备以及 Android Debug BridgeADB协议该协议显示了用于 ADB 协议的有两个批量端点的第二个接口。如果你正在计算机上模拟配件可以使用这些端点来调试配件应用程序。通常不要使用此接口除非配件在设备上实现到 ADB 的传输。
如果 USB 设备描述符中发现的厂商 ID 或产品 ID 与预期值不匹配则配件无法确定设备是否支持 Android 配件模式。配件应尝试以配件模式详细说明如下启动设备以确定设备支持情况。
尝试从配件模式启动
如果厂商和产品 ID 与配件模式下的 Android 设备不相符则配件无法辨别设备是否支持支持但不处于配件模式或者设备是否不支持配件模式。这可能是因为支持配件模式但不处于配件模式的设备最初报告设备制造商厂商和产品 ID 而不是 AOA 厂商和产品 ID。
配件应尝试以配件模式启动设备以确定设备是否支持该模式
1. 发送 51 控制请求“Get Protocol”以确定设备是否支持 Android 配件协议。如果设备支持协议则返回非零数字表示支持的协议版本。控制请求在端点0上具有以下特征 requestType: USB_DIR_IN | USB_TYPE_VENDOR
request: 51
value: 0
index: 0
data: protocol version number (16 bits little endian sent from thedevice to the accessory) 2. 如果设备返回支持的协议版本则向设备发送带有标识字符串信息的控制请求。该信息允许设备确定适合配件的应用或者向用户呈现 URL 若不存在适合的应用。控制请求位于端点0对于每个字符串 ID具有以下特征 requestType: USB_DIR_OUT | USB_TYPE_VENDOR
request: 52
value: 0
index: string ID
data zero terminated UTF8 string sent from accessory to device 支持以下字符串ID每个字符串的最大为256字节必须以 \ 0 为零终止。 manufacturer name: 0
model name: 1
description: 2
version: 3
URI: 4
serial number: 5 3. 发送控制请求要求设备以配件模式启动。控制请求在端点0上具有以下特征 requestType: USB_DIR_OUT | USB_TYPE_VENDOR
request: 53
value: 0
index: 0
data: none 完成这些步骤后配件应等待连接的 USB 设备在配件模式下将其自身重新引入总线然后重新枚举所连接的设备。如果设备成功切换到配件模式则通过检查厂商和产品 ID 的算法determines accessory mode support 应该是正确的例如对应于Google的供应商和产品ID而不是设备制造商的ID。如果 ID 正确则配件移动至 establish communication with the device。
NoteAOA 当前不支持同时进行 AOA 和 MTP 连接。 要从 AOA 切换到 MTP配件必须首先断开 USB 设备物理上或电气上等效的方式然后使用 MTP 重新连接。
如果任何步骤失败配件确定设备不支持 Android 配件模式并等待下一个设备连接。 建立与设备的通信 如果配件检测到处于配件模式的 Android 设备则配件可以查询设备接口和端点描述符以获取与设备通信的批量端点。 接口和批量端点的数量取决于产品 ID。 Android 设备有产品 ID
1. 0x2D00 具有一个有两个批量端点的接口用于输入和输出通信。
2. 0x2D01 具有两个接口每个接口具有两个批量端点用于输入和输出通信。 第一个接口处理标准通信第二个接口处理 ADB 通信。 要使用接口请找到第一个批量输入和输出端点使用 SET_CONFIGURATION0x09设备请求将设备配置设置为 1然后使用端点进行通信。 原文链接https://source.android.com/devices/accessories/aoa