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_DISCOVERED
和 android.nfc.action.TECH_DISCOVERED
)监听特定代码内容和代码技术。
NFC API 可在 android.nfc
和 android.nfc.tech
软件包中使用。关键类如下:
NfcAdapter
,表示设备上的 NFC 硬件。NdefMessage
,表示 NDEF 数据消息,即在设备和标签之间传输携带数据的“记录”的标准格式。NDEF 消息可以包含多条不同类型的 NDEF 记录。应用可以通过NDEF_DISCOVERED
、TECH_DISCOVERED
或TAG_DISCOVERED
intent 接收这些消息。NdefRecord
,以NdefMessage
的形式传送,用于描述要共享的数据类型并携带数据本身。Tag
,表示设备扫描到的标签。支持多种类型的代码,具体取决于底层代码技术。TagTechnology
,这是一个接口,可让应用根据代码中存在的技术访问代码属性和 I/O 操作。如需查看 Android 2.3.3 支持的标记技术的完整列表,请参阅android.nfc.tech
。
NFC 通信依赖于设备硬件中的无线技术,并非所有 Android 设备都支持 NFC。不支持 NFC 的 Android 设备在调用 getDefaultAdapter(Context)
时会返回 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 方法。这反过来又会提高重建图像的质量。
媒体框架
- 新的
MediaMetadataRetriever
类提供了一个统一的接口,用于从输入媒体文件检索帧和元数据。 MediaRecorder.AudioEncoder
和MediaRecorder.OutputFormat
包含用于指定 AMR 宽带和 AAC 格式的新字段。
语音识别
语音识别 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 级别?