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 的应用,平台提供了 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 级别文档。