API 级别:15
Android 4.0.3 (ICE_CREAM_SANDWICH_MR1
) 是 Android 4.0 (ICE_CREAM_SANDWICH
) 平台系列的增量版本。此版本包含面向用户和开发者的新功能、API 变更和各种 bug 修复。
对于开发者,Android 4.0.3 平台可作为 Android SDK 的可下载组件提供。可下载的平台包含 Android 库和系统映像,以及一组模拟器皮肤等。如需开始针对 Android 4.0.3 进行开发或测试,请使用 Android SDK 管理器将该平台下载到您的 SDK 中。
API 概览
以下部分简要介绍了 Android 4.0.3 中的新 API。
联系人提供程序中的 Social Stream API
使用社交信息流数据(例如状态更新和签到)的应用现在可以将这些数据与用户的每个联系人同步,在信息流中提供各个联系人的相关内容以及照片。
包含单个联系人的社交信息流的数据库表由 android.provider.ContactsContract.StreamItems 定义,其 URI 嵌套在相应信息流项所属的 ContactsContract.RawContacts
目录中。每个社交媒体信息流表都包含多个列,用于存储与每个信息流项相关的元数据,例如代表来源的图标(头像)、项的标签、主要文本内容、与项相关的评论(例如其他人的回复)等。与信息流关联的照片存储在另一个表中,该表由 android.provider.ContactsContract.StreamItemPhotos 定义,可作为 android.provider.ContactsContract.StreamItems Uri 的子目录使用。
如需了解详情,请参阅 android.provider.ContactsContract.StreamItems 和 android.provider.ContactsContract.StreamItemPhotos。
如需读取或写入联系人的社交信息流项,应用必须在其清单文件中声明 <uses-permission
android:name="android.permission.READ_SOCIAL_STREAM">
和/或 <uses-permission
android:name="android.permission.WRITE_SOCIAL_STREAM">
,以便向用户请求权限。
日历提供程序
- 添加了类
CalendarContract.Colors
,用于在日历提供程序中表示颜色表。该类提供了用于访问给定账号可用的颜色的字段。颜色通过 COLOR_KEY
引用,对于给定的账号名称/类型,该值必须是唯一的。这些值只能由同步适配器更新。
- 添加了
ALLOWED_AVAILABILITY
和 ALLOWED_ATTENDEE_TYPES
,以支持交换/同步。
- 为参与者添加
TYPE_RESOURCE
(例如会议室),并为 AVAILABILITY_TENTATIVE
添加 EVENT_COLOR_KEY
,为活动添加 EVENT_COLOR_KEY
。
CalendarContract.Colors
,用于在日历提供程序中表示颜色表。该类提供了用于访问给定账号可用的颜色的字段。颜色通过 COLOR_KEY
引用,对于给定的账号名称/类型,该值必须是唯一的。这些值只能由同步适配器更新。ALLOWED_AVAILABILITY
和 ALLOWED_ATTENDEE_TYPES
,以支持交换/同步。TYPE_RESOURCE
(例如会议室),并为 AVAILABILITY_TENTATIVE
添加 EVENT_COLOR_KEY
,为活动添加 EVENT_COLOR_KEY
。主屏幕小部件
从 Android 4.0 开始,主屏幕微件不应再包含自己的内边距。而是系统根据当前屏幕的特征来为每个微件自动添加内边距。这样可使微件在网格中显得更加统一和一致。为了协助托管主屏幕 widget 的应用,该平台提供了新方法 getDefaultPaddingForWidget()
。应用可调用此方法来获取系统定义的内边距,并在计算要分配给微件的单元格数量时考虑该内边距。
拼写检查
- 对于访问拼写检查服务的应用,新的
cancel()
方法会取消会话中的所有待处理和正在运行的拼写检查任务。 - 对于拼写检查服务,新的建议标志
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
可让服务区分出更高置信度的建议和更低置信度的建议。例如,如果输入的字词不在用户字典中,但有可能的建议,拼写检查工具可以设置该标志;如果输入的字词不在字典中,并且建议可能不太实用,则不设置该标志。与拼写检查器关联的应用可以将
RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS
标志与其他建议属性以及getSuggestionsAttributes()
和getSuggestionsCount()
方法结合使用,以确定是否将输入的字词标记为拼写错误并提供建议。 - 文本 span 的新
FLAG_AUTO_CORRECTION
样式表示系统即将对用户正在输入/撰写的字词/文本应用自动更正功能。系统会以不同的方式呈现此类建议,以指示正在进行自动更正。
蓝牙
借助新的公共方法 fetchUuidsWithSdp()
和 getUuids()
,应用可以确定远程设备支持的功能 (UUID)。对于 fetchUuidsWithSdp()
,系统会在远程设备上执行服务发现,以获取支持的 UUID,然后在 ACTION_UUID
intent 中广播结果。
界面工具包
借助新方法 setUserVisibleHint()
和 getUserVisibleHint()
,fragment 可以设置一个提示,指明它当前是否可见。系统会推迟启动不对用户可见的 fragment,直到可见 fragment 的加载器运行完毕。可见性提示默认为“true”。
图形
SurfaceTexture
中的新方法setDefaultBufferSize(int, int)
用于设置图片缓冲区的默认大小。此方法可用于在使用Canvas
(通过lockCanvas(Rect)
)或 OpenGL ES(通过 EGLSurface)生成图片时设置图片大小。- 添加了 GL_OES_EGL_image_external OpenGL ES 扩展的枚举的定义 -
GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES
、GL_SAMPLER_EXTERNAL_OES
、GL_TEXTURE_BINDING_EXTERNAL_OES
和GL_TEXTURE_EXTERNAL_OES
。
无障碍
RemoteViews
的客户端现在可以使用setContentDescription()
方法设置和获取膨胀布局中的任何 View 的内容说明。- 借助
getMaxScrollX()
、getMaxScrollY()
、setMaxScrollX()
和setMaxScrollY()
方法,应用可以获取和设置AccessibilityRecord
对象的最大滚动偏移量。 - 启用触摸探索模式后,系统会显示一个新的安全设置
ACCESSIBILITY_SPEAK_PASSWORD
,用于指示用户是否请求 IME 读出在密码字段中输入的文本,即使未使用耳机也是如此。默认情况下,除非使用耳机,否则系统不会读出密码文本。
文字转语音
- 添加了用于查询和启用网络 TTS 支持的新方法
getFeatures()
。 - 添加了新的监听器类
UtteranceProgressListener
,引擎可以注册该类以接收语音合成错误通知。
数据库
- 借助新的
CrossProcessCursorWrapper
类,内容提供程序可以更高效地返回跨进程查询的结果。新类对于封装要远程发送到进程的光标非常有用。它还可以透明地将普通Cursor
对象转换为CrossProcessCursor
对象。CrossProcessCursorWrapper
类修复了应用在实现内容提供程序时遇到的常见性能问题和 bug。 CursorWindow(java.lang.String)
构造函数现在接受名称字符串作为输入。系统不再区分本地光标窗口和远程光标窗口,因此CursorWindow(boolean)
现已废弃。
Intent
添加了用于定位设备上常见类型的应用(例如 CATEGORY_APP_BROWSER
、CATEGORY_APP_CALENDAR
、CATEGORY_APP_MAPS
等)的新类别。
相机
MediaMetadataRetriever
添加了新常量METADATA_KEY_LOCATION
,以便应用访问图片或视频的位置信息。CamcorderProfile
添加了 QVGA (320x240) 分辨率配置文件。画质级别由QUALITY_QVGA
和QUALITY_TIME_LAPSE_QVGA
常量表示。- 借助新方法
setVideoStabilization()
、getVideoStabilization()
和isVideoStabilizationSupported()
,您可以检查和管理Camera
的视频防抖功能。
权限
以下是新权限:
- android.Manifest.permission#READ_SOCIAL_STREAM 和 android.Manifest.permission#WRITE_SOCIAL_STREAM:允许同步适配器读取和写入社交信息流数据,并将其写入共享通讯录提供程序中的联系人。
如需详细了解 Android 4.0.3(API 级别 15)中的所有 API 变更,请参阅 API 差异报告。
API 级别
Android 4.0.3 API 会被分配一个整数标识符(15),该标识符存储在系统本身中。此标识符称为“API 级别”,可让系统在安装应用之前正确确定应用是否与系统兼容。
如需在应用中使用 Android 4.0.3 中引入的 API,您需要针对支持 API 级别 15 或更高级别的 Android 平台编译应用。根据您的需求,您可能还需要向 <uses-sdk>
元素添加 android:minSdkVersion="15"
属性。
如需了解详情,请参阅 API 级别文档。