Android 2.3.4 API

API 级别10

Android 2.3.4 (GINGERBREAD_MR1) 是一款维护版本,它向 Android 2.3 平台添加了多个 bug 修复和补丁,但与 Android 2.3.3 相比没有任何 API 变更。此外,Android 2.3.4 还通过可选的 Open Accessory 库为移动设备带来了对 Open Accessory API 的支持。

对于开发者,Android 2.3.4 平台可作为 Android SDK 的可下载组件使用。可下载的平台包含 Android 库和系统映像,以及一组模拟器皮肤等。如需开始针对 Android 2.3.4 进行开发或测试,请使用 Android SDK 管理器将该平台下载到您的 SDK 中。

API 概览

Android 2.3.4 为应用提供与 Android 2.3.3(API 级别 10)相同的框架 API。如需查看该 API 的摘要,请参阅 Android 2.3.3 版本说明

打开配件库

Open Accessory 是一项用于将连接的外围设备与平台上运行的应用集成的新功能。该功能基于内置于平台中的 USB(通用串行总线)堆栈和可供应用使用的 API。作为配件连接到 Android 设备的外围设备会以 USB 主机的身份进行连接。

开放配件在 Android 3.1(API 级别 12)中引入,但通过可选的外部库(即 Open Accessory Library)可供搭载 Android 2.3.4 的设备使用。该库公开了一个框架 API,可让应用发现、与之通信和管理通过 USB 连接的各种类型的设备。此外,它还针对未直接提供给 Android 2.3.4 中的应用的 Android 平台部分提供了 API 实现。

任何给定设备上的开放式配件库都是可选的。设备制造商可以选择是否在其产品中包含开放式配件库,也可以选择将其排除在外。该库向前兼容 Android 3.1,因此针对 Android 2.3.4 开发的应用将可以在运行 Android 3.1 的设备上正常运行(如果设备支持 USB 配件)。

Open Accessory 库提供的 API 基于 Android 3.1 中提供的 Open Accessory API。在大多数领域,您都可以使用相同的技术和 API。不过,Android 2.3.4 上针对 Open Accessory Library 的开发与标准 USB API 的不同之处体现在以下几个方面:

  • 获取 UsbManager 对象 - 如需在使用插件库时获取 UsbManager 对象,请使用辅助方法 getInstance(),而不是 getSystemService()。例如:

    Kotlin

    val manager = UsbManager.getInstance(this)
    

    Java

    UsbManager manager = UsbManager.getInstance(this);
    
  • 从过滤后的 intent 中获取 UsbAccessory - 如果您使用 intent 过滤器过滤已连接的设备或配件,则 UsbAccessory 对象会包含在传递给应用的 intent 中。如果您使用的是插件库,可以通过以下方式获取 UsbAccessory 对象:

    Kotlin

    val accessory = UsbManager.getAccessory(intent)
    

    Java

    UsbAccessory accessory = UsbManager.getAccessory(intent)
    
  • 不支持 USB 主机 - Android 2.3.4 和开放配件库不支持 USB 主机模式(例如,通过 UsbDevice),但 Android 3.1 支持 USB 主机模式。运行 Android 2.3.4 的 Android 设备不能用作 USB 主机。该库使 Android 设备仅可用作外围设备,而连接的配件可用作 USB 主机(通过 UsbAccessory)。

若要使用开放配件库开发应用,您需要:

  • 最新版本的 Android SDK 工具
  • Google API 插件最新版本,其中包含库本身(用于关联)
  • 搭载 Android 2.3.4(或 Android 3.1)且支持 USB 配件的实际硬件设备,用于对已连接的设备进行运行时测试

如需完整了解如何开发与 USB 配件交互的应用,请参阅相关的开发者文档

此外,开发者还可以在 Google Play 上请求过滤,以便其应用不向设备不提供适当配件的用户提供。如需请求过滤,请将以下元素添加到应用清单中:

<uses-feature
  android:name="android.hardware.usb.accessory"
  android:required="true">

API 级别

Android 2.3.4 平台不会递增 API 级别,而是使用与 Android 2.3.3 相同的 API 级别,即 API 级别 10。

若要在应用中使用 API 级别 10 中引入的 API,您需要根据最新版 Google API 插件(还包括开放配件库)中提供的 Android 库编译应用。

根据您的需求,您可能还需要向应用清单中的 <uses-sdk> 元素添加 android:minSdkVersion="10" 属性。如果您的应用仅设计为在 Android 2.3.3 及更高版本上运行,声明该属性可防止应用安装在较低版本的平台上。

如需了解详情,请参阅什么是 API 级别?