自定义配件

Android 的配件可以是任何设备:键盘、温度计、机器人、照明控制系统或您可以想象到的任何设备。所有 Android 配件都以某种方式连接到 Android 设备,因此在构建配件时,您必须考虑配件将使用的连接类型。本页概括介绍了 Android 配件的连接选项,以及可帮助您快速入门的资源列表。

通过 USB 进行连接

通过 USB 数据线连接到 Android 设备的配件必须支持 Android 开源配件 (AOA) 协议,该协议指定了配件如何通过 USB 与 Android 设备建立通信。由于 Android 设备的输出功率较低,因此 AOA 需要配件充当 USB 主机,这意味着连接的配件必须为总线供电。

AOA 有两个支持不同通信类型的版本:

  • AOAv1。支持通用配件通信和 adb 调试。适用于 Android 3.1(API 级别 12)及更高版本,在 Android 2.3.4(API 级别10)及更高版本中通过插件库获得支持。
  • AOAv2。支持音频流式传输和人机接口设备 (HID) 功能。适用于 Android 4.1(API 级别 16)。

如果您使用通用配件协议(而不是使用 adb 或音频协议)与配件通信,则必须提供可以检测 USB 配件连接并建立通信的 Android 应用。

后续步骤

开始构建使用 USB 连接的 Android 配件:

  • 选择可支持 USB 主机模式的硬件平台或构建此类硬件设备。
  • 查看 AOA 规范,以了解如何在您的配件硬件上实现此协议。建议为所有新的 Android USB 配件实现 AOAv2
  • 查看 ADK 2012 固件源代码 (<adk-src>/adk2012/board/library/ADK2/),该代码展示了使用 USB 连接进行常规数据通信和音频流式传输的配件实现。
  • 当计划构建通过 USB 与配件通信的 Android 应用时,请查看 ADK 2012 Android 应用源代码 (<adk-src>/adk2012/app/)。

通过蓝牙进行连接

通过蓝牙连接与 Android 设备连接的配件可以使用 Android 支持的连接配置文件,包括简单串行协议 (SSP) 和高级音频分发配置文件 (A2DP)。使用蓝牙连接到 Android 设备的配件必须支持蓝牙通信以及至少一个受支持的连接配置文件。

用户必须在 Android 设备上启用蓝牙功能,并与您的配件配对以使用该配件。您还可以提供一个辅助 Android 应用,负责处理专门的通信(如数据输入或控制输出),以与您的配件进行连接。

后续步骤

开始构建使用蓝牙连接的 Android 配件:

  • 选择可支持蓝牙通信和 Android 支持的连接配置文件(如 SSP 或 A2DP)的硬件平台或构建此类硬件设备。
  • 查看 ADK 2012 固件源代码 (<adk-src>/adk2012/board/library/ADK2/),其中包含使用蓝牙连接进行常规数据通信和音频流式传输的一个示例实现。
  • 当计划构建通过蓝牙与配件通信的 Android 应用时,请查看 ADK 2012 Android 应用源代码 (<adk-src>/adk2012/app/)。

注意:ADK 2012 源代码包括为 Texas Instruments CC2564 芯片构建的开放源代码蓝牙堆栈,但其可与支持标准主机/控制器接口 (HCI) 的任何蓝牙芯片配合使用。

通过 USB 连接音频

通过 USB 连接 Android 的配件可以使用 AOAv2(在 Android 4.1(API 级别 16)和更高版本上受支持)。在 Android 设备连接到支持此协议的配件后,Android 系统便会将其视为标准音频输出设备,并将所有音频导向到该配件。在 Android 设备上不需要辅助软件应用。

注意:由于 Android 设备的输出功率较低,因此 AOA 需要配件充当 USB 主机,这意味着连接的配件必须为总线供电。

后续步骤

要开始构建使用 USB 连接的音频配件,请参阅 USB 连接的后续步骤

AOAv2 还通过 USB 连接支持人机接口设备 (HID) 协议,使诸如音频基座等配件能够提供硬件播放控件,如暂停、快进或音量按钮。