好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

AOA协议开发入门基础.doc

4页
  • 卖家[上传人]:m****
  • 文档编号:548971910
  • 上传时间:2023-09-10
  • 文档格式:DOC
  • 文档大小:27.50KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1. AOA协议概述基于AOA协议实现Android终端USB通信方式称为配件模式此模式下,与Android终端通信的另一端设备称为Android配件,两者都必须支持AOA协议在USB通信过程中,Android终端充当USB从机,Android配件充当USB主机并为总线供电Android配件需具有USB主控制器功能并移植有AOA协议配件内置USB Embedded Host端,可以为Android 供电,并且识别Android ,建立数据通道使得配件成为一个简化版的PC Host端 配件还必须提供500毫安在5V供电电源图1-1 USB配件模式框图2. AOA协议工作过程图2-1 AOA协议整体交互图1.配件端等待 连接2. 接入配件3.配件通过USB驱动的控制通道〔0通道,端点0〕获取 的vendor ID与product ID4.配件分析获取的vendor ID是否为0x18D1,以及product ID是否为0x2D01, 0x2D02, 0x2D03或0x2D04如果均符合,那么说件现在 已经是配件模式,可以按照配件模式的要求直接重新配置USB端点和接口。

      否那么启动尝试进入配件模式流程5.确定 已经进入配件模式,重新枚举USB设备, 重新进行USB协商6.按照配件模式重新配置USB端点和接口,建立配件模式的数据通道图2-1 启动配件模式交互流程尝试启动配件模式交互流程:1.配件发送序号51的USB请求报文, 收到后查询自己的AOA协议版本,发送响应报文给配件2.配件校验协议版本号,目前为1或2,其他的均为不支持3.配件发送序号52的USB请求报文,通过Index字段携带配件自身信息,包括制造商,型号,版本,设备描述,序列号,URI等 根据这些信息启动响应的APP4.配件发送序号53的USB请求报文,切换USB模式,主要是根据切换vendor ID和product ID5.重新枚举USB设备,准备建立AOA数据通道参考:Android Open Accessory 协议分析与开发3. AOA的设备握手过程绝大多数Android设备,在缺省情况下都不挂载Accessory驱动;在Accessory与Android设备建立USB连接时;Accessory会通过握手协议查询该设备是否为Android设备且具有AOA支持,如果获得正确应答,Accessory会向Android设备发出切换到AOA模式的请求,Android设备会执行请求,将USB切换到AOA模式;在这个过程中,USB连接会出现一次逻辑插拔,USB Host一端会重新枚举设备。

      在握手过程中,Accessory会向Android提供AOA约定的描述信息,其中有三个信息是Android系统用于绑定Accessory设备与App的;分别是:manufacturer、model、versionAndroid系统根据这三个字符串匹配相应的App如果系统内无任何App可以匹配Accessory设备发来的握手信息;那么Android设备会弹出一个对话框,向用户提供Accessory设备发送过来的描述信息和URL信息,用户可以点击URL访问它指向的Web页面如果系统内有App可以匹配Accessory设备发来的握手信息;那么Android会弹出一个对话框询问用户是否立刻启动该App;如果用户选择OK那么启动该App;同时该对话框提供一个勾选框,勾选之后每次Accessory设备连接后会自动启动该App;应该要求用户勾选该对话框,否那么App启动后向USB Manager获取Accessory设备后可能因为Permission问题无法翻开文件描述符建立通讯连接参考: s://github /matianfu/adk2012/wiki/%E4%BB%A3%E7%A0%81%E8%AF%B4%E6%98%8E4. 注意1.PID是0x2D00保存给支持附件模式的Android设备。

      0x2D01保存用于支持附件模式以及Android调试桥〔ADB〕协议的设备,第二个接口为ADB并且具有两个批量端点如果要在计算机上模拟附件,可以使用这些端点来调试附件应用程序一般来说,不要使用此接口,除非附件在设备上实现传输到ADB0x2D00具有一个拥有两个批量端点的接口,用于输入和输出通信的 0x2D01具有两个接口,每个接口具有两个批量端点,用于输入和输出通信第一个接口处理标准通信,第二个接口处理ADB通信要使用接口,请找到第一个批量输入和输出端点,使用SET_CONFIGURATION〔0x09〕设备请求将设备配置设置为1,然后使用端点进行通信2.AOA目前不支持同时进行的AOA和MTP〔Media Transfer Protocol,媒体传输协议〕连接要从AOA切换到MTP,附件必须首先断开USB设备〔物理上或电气上等效的方式〕,然后使用MTP重新连接AOA PID说明:版本Product ID通信模式说明AOAv10x2D00accessory提供与Android应用程序通信的两个批量端点0x2D01accessory + adb用于附件开发时的调试仅当用户在Android设备设置中启用了USB调试功能时才可用。

      AOAv20x2D02audio用于将音频从Android设备传输到附件0x2D03audio + adb0x2D04accessory + audio0x2D05accessory + audio + adb。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.