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 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 版本说明

开放配件库

开放配件是一项新功能,用于将连接的外围设备与平台上运行的应用集成。该功能基于平台内置的 USB(通用串行总线)堆栈和提供给应用的 API。作为配件连接时,连接到 Android 设备的外围设备作为 USB 主机进行连接。

开放配件在 Android 3.1(API 级别 12)中引入,但会通过可选的外部库(即开放配件库)提供给搭载 Android 2.3.4 的设备。该库公开了一个框架 API,借助该 API,应用能够发现和管理通过 USB 连接的各种设备类型,并管理这些设备类型。此外,针对 Android 平台中未直接提供给 Android 2.3.4 应用的部分,提供了该 API 的实现。

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

Open Accessory Library 提供的 API 基于 Android 3.1 中提供的 Open Accessory API。在大多数方面,您都可以使用相同的方法和 API。不过,针对 Android 2.3.4 上的开放配件库进行开发与标准 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 级别 10)相同的 API 级别。

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

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

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