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 的技术概览。
联系人提供程序中的社交流 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
。
CalendarContract.Colors
类,用于表示日历提供程序中的颜色表。该类提供用于访问给定帐号可用颜色的字段。颜色由 COLOR_KEY
引用,对于给定的帐号名称/类型,颜色必须是唯一的。这些值只能通过同步适配器更新。ALLOWED_AVAILABILITY
和 ALLOWED_ATTENDEE_TYPES
,以支持交换/同步。TYPE_RESOURCE
(如会议室),为活动添加 AVAILABILITY_TENTATIVE
,以及为活动添加 EVENT_COLOR_KEY
。主屏幕小部件
从 Android 4.0 开始,主屏幕 widget 不应包含自己的内边距。相反,系统现在会根据当前屏幕的特性自动为每个 widget 添加内边距。这样可以使 widget 在网格中呈现更加统一、一致。为了帮助托管主屏幕 widget 的应用,平台提供了一种新方法 getDefaultPaddingForWidget()
。应用可以调用此方法来获取系统定义的内边距,并在计算要分配给 widget 的单元格数量时考虑该内边距。
拼写检查
- 对于访问拼写检查服务的应用,新的
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()
方法设置和获取膨胀布局中任何视图的内容说明。getMaxScrollX()
、getMaxScrollY()
、setMaxScrollX()
和setMaxScrollY()
方法允许应用获取和设置AccessibilityRecord
对象的最大滚动偏移。- 启用触摸浏览模式后,新的安全设置
ACCESSIBILITY_SPEAK_PASSWORD
可指明用户是否请求 IME 朗读在密码字段中输入的文本,即使耳机未在使用中。默认情况下,除非正在使用耳机,否则系统不会读出密码文字。
文字转语音
- 添加了新方法
getFeatures()
,用于查询和启用网络 TTS 支持。 - 添加了一个新的监听器类
UtteranceProgressListener
,引擎可以注册该类以接收语音合成错误的通知。
数据库
- 新的
CrossProcessCursorWrapper
类让 content provider 可以更高效地返回跨进程查询的结果。这个新类是一个很有用的构建块,用于封装要远程发送到进程的游标。它还可以透明地将普通Cursor
对象转换为CrossProcessCursor
对象。CrossProcessCursorWrapper
类修复了应用在实现 content provider 时遇到的常见性能问题和 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 级别文档。