Android 2.3.3 API

API 级别10

Android 2.3.3 (GINGERBREAD_MR1) 是一个小型功能版本,向 Android 2.3 平台添加了多项改进和 API。

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

API 概览

以下部分从技术上概述了 2.3.3 中面向开发者的新功能,包括自上一个版本以来框架 API 中的新功能和变化。

近距离无线通信 (NFC)

Android 2.3.3 改进了对 NFC 的支持并进行了扩展,使应用能够以新的方式与更多类型的标签进行交互。

借助一套全面的新 API,应用可以对更多标准标签技术进行读写访问,包括:

  • NFC-A (ISO 14443-3A)
  • NFC-B (ISO 14443-3B)
  • NFC-F (JIS 6319-4)
  • NFC-V (ISO 15693)
  • ISO-DEP (ISO 14443-4)
  • MIFARE Classic
  • MIFARE Ultralight
  • NFC Forum NDEF 标签

该平台还提供了有限的点对点通信协议和 API。前台 activity 可以使用该 API 注册一条 NDEF 消息,当其他 NFC 设备连接时,该消息会推送到这些设备。

现在,高级标签调度功能可让应用在发现 NFC 标签时更好地控制其启动方式和时间。以前,平台使用单步 intent 调度来通知感兴趣的应用发现了代码。该平台现在采用一个四步流程,使前台应用能够在标记事件被传递到任何其他应用 (android.nfc.NfcAdapter.enableForegroundDispatch()) 之前对其进行控制。 新的调度流程还允许应用基于两个新的 intent 操作(android.nfc.action.NDEF_DISCOVEREDandroid.nfc.action.TECH_DISCOVERED)监听特定的标记内容和标记技术。

NFC API 在 android.nfcandroid.nfc.tech 软件包中提供。关键类包括:

  • NfcAdapter:表示设备上的 NFC 硬件。
  • NdefMessage:表示 NDEF 数据消息,这是携带数据的“记录”在设备和标签之间传输的标准格式。一条 NDEF 消息,某些不同类型的 NDEF 记录。 应用可以从 NDEF_DISCOVEREDTECH_DISCOVEREDTAG_DISCOVERED intent 接收这些消息。
  • NdefRecord,在 NdefMessage 中传递,用于描述共享的数据类型并携带数据本身。
  • Tag:表示设备扫描的标签。根据底层代码技术,支持多种类型的代码。
  • TagTechnology:一个接口,允许应用根据标记中存在的技术访问标记属性和 I/O 操作。如需查看 Android 2.3.3 支持的标签技术的完整列表,请参阅 android.nfc.tech

NFC 通信依赖于设备硬件中的无线技术,并非所有 Android 设备都有提供。调用 getDefaultAdapter(Context) 时,不支持 NFC 的 Android 设备会返回 null 对象,而 context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_NFC) 会返回 false。但是,无论底层硬件支持如何,NFC API 始终存在。

如需使用 NFC API,应用必须通过在其清单文件中声明 <uses-permission android:name="android.permission.NFC"> 向用户请求权限。

此外,开发者还可以在 Google Play 上请求过滤,这样,不支持 NFC 的设备的用户就无法检测到其应用。如需请求过滤,请将 <uses-feature android:name="android.hardware.nfc" android:required="true"> 添加到应用的清单中。

如需了解详情,请参阅 NFC 开发者指南。

蓝牙

Android 2.3.3 添加了对蓝牙非安全套接字连接的平台和 API 支持。这样,应用就可以与可能未提供身份验证界面的简单设备进行通信。如需了解详情,请参阅 createInsecureRfcommSocketToServiceRecord(java.util.UUID)listenUsingInsecureRfcommWithServiceRecord(java.lang.String, java.util.UUID)

图形

  • 新的 BitmapRegionDecoder 类让应用能够从图片中解码矩形区域。当原始图片很大且应用只需要图片的某些部分时,此 API 特别有用。
  • BitmapFactory.Options 中新增了 inPreferQualityOverSpeed 字段,可让应用在 JPEG 解码中使用更准确但速度稍慢的 IDCT 方法。这反过来又提高了重建图像的质量。

媒体框架

语音识别

Speech-recognition API 包含新的常量,可让您以新的方式管理语音搜索结果。虽然正常使用语音识别不需要这些新常量,但您可以使用它们在应用中提供不同的语音搜索结果视图。如需了解详情,请参阅 RecognizerResultsIntent

API 级别

Android 2.3.3 平台提供了框架 API 的更新版本。系统会为 Android 2.3.3 API 分配一个整数标识符 (10),该标识符存储在系统本身中。此标识符称为“API 级别”,可让系统在安装应用之前正确确定应用是否与系统兼容。

若要在您的应用中使用 Android 2.3.3 中引入的 API,您需要根据 Android 2.3.3 SDK 平台中提供的 Android 库编译应用。根据您的需求,您可能还需要在应用清单中向 <uses-sdk> 元素添加一个 android:minSdkVersion="10" 属性。如果您的应用设计为仅在 Android 2.3 及更高版本上运行,则声明该属性会阻止应用安装在较低版本的平台上。

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