下一版 Android 兼容性定义文档 (CDD) 正在编写中。如需了解 CDD 的最新版本,请参阅 Android 兼容性定义文档。
2. 设备类型
2.2. 手持设备相关要求
2.2.1. 硬件
如果手持设备实现支持移动数据网络连接,则:
- [7.4.1/H-1-1] 必须声明
android.hardware.telephony.data功能。
2.2.3. 软件
当应用符合所有推广特征时,可以推广应用的实时动态通知。在本文档中,此类通知将被称为“推广的实时动态通知”。手持设备实现必须按照以下要求,以醒目的方式显示推广的实时动态通知。手持设备实现:
[3.8.3.1/H-0-1] 必须在锁定屏幕上的醒目位置显示推广的实时动态通知。
[3.8.3.1/H-0-12] 当推广的实时动态通知与其他通知一起显示时,该通知必须在通知堆栈的顶部作为浮动通知显示,而且必须显示在彩色通知(其中
setColorized为true)的上方。- 当有多个应用符合推广的实时动态通知的条件时,可能需要决定在通知栏和锁定屏幕上显示各个推广的实时动态通知的顺序。
[3.8.3.1/H-0-2] 必须以展开状态显示推广的实时动态通知。
[3.8.3.1/H-0-3] 不得提供任何方式,让用户能够收起上述展开的通知。
[3.8.3.1/H-0-4] 必须显示推广的实时动态通知中文本内容的基本样式(粗体、斜体和下划线)(通过
StyleSpan或UnderlineSpan提供)。[3.8.3.1/H-0-5] 在推广的实时动态通知中,必须仅显示标准操作对象(通过
Notification.Action)。即使通知中包含输入框、“回复”按钮和关联操作等非标准操作对象(通过addRemoteInput()和setContextual()),也是如此。[3.8.3.1/H-0-6] 必须以紧凑表示形式(在 SDK 文档中也称为状态条状标签)显示推广的实时动态通知,且该表示形式必须包含
Notification.getSmallIcon()。[3.8.3.1/H-0-7] 在使用紧凑表示形式时,其他字段都是可选字段。但只要紧凑表示形式可以展开,则必须显示
Notification.getShortCriticalText()(如果有)或Notification.when(如果没有Notification.getShortCriticalText)。[3.8.3.1/H-0-8] 如果存在多个推广的实时动态通知,必须在状态栏中以紧凑表示形式显示其中至少一个。
[3.8.3.1/H-0-9] 当用户点按紧凑表示形式时,必须显示关联的通知(首选)或者打开关联的应用(通过
Notification.contentIntent)。[3.8.3.1/H-0-13] 必须在关联的通知中显示与通知栏中的可见内容完全相同的内容。
[3.8.3.1/H-0-10] 必须提供一种方式,让用户能够针对单个应用的通知停用和启用推广显示。
[3.8.3.1/H-0-11] 必须正确呈现所有实时动态通知,包括但不限于不符合或仅部分符合推广特征的非推广实时动态通知。 此类非推广通知必须以非推广状态显示。
2.4. Watch 设备相关要求
2.4.1. 硬件
如果手表设备实现支持移动数据网络连接,则:
- [7.4.1/W-1-1] 必须声明
android.hardware.telephony.data功能。
3. 软件
3.9. 设备管理
3.9.2. 受管资料支持
如果设备实现声明 android.software.device_admin 和 android.software.managed_users,则:
- [C-1-1] 必须通过
android.app.admin.DevicePolicyManagerAPI 支持受管资料。 - [C-1-2] 必须允许且只允许创建一个受管资料。
- [C-1-3] 必须使用图标标记(类似于 AOSP 上游工作标记)表示受管理应用和 widget 以及其他带有标记的界面元素(例如“最近用过”和“通知”)。
- [C-1-4] 当用户位于受管资料应用中时,必须显示通知图标(类似于 AOSP 上游工作标记)来指明这一点。
- [C-1-5] 当设备唤醒 (
ACTION_USER_PRESENT) 且前台应用在受管资料中时,必须显示消息框来指明用户位于受管资料中。 - [C-1-6] 如果存在受管资料,并且该资料已由设备政策控制器启用,则必须在 intent“选择器”中显示可见方式,以便用户将 intent 从受管资料转发给主要用户,反之亦然。
- [C-1-7] 如果存在受管资料,必须针对主要用户和受管资料提供以下用户可见内容:
- 分别计算主要用户和受管资料的耗电量、位置信息、移动流量和存储空间用量。
- 单独管理安装在主要用户或受管资料中的 VPN 应用。
- 单独管理安装在主要用户或受管资料中的应用。
- 单独管理主要用户或受管理资料中的账号。
- [C-1-8] 如果设备政策控制器允许,必须确保预安装的拨号器、通讯录和消息应用可以搜索和查询受管理资料(如果存在)以及主要资料中的来电者信息。
- [C-1-9] 必须确保满足适用于启用了多用户的设备的所有安全性要求(请参阅第 9.5 节),虽然除了主要用户之外,受管资料不算作其他用户。
- [C-1-10] 在使用具有焦点(即用户在所有 activity 中最后一个互动的 activity)且属于工作资料应用的
topActivity窗口捕获屏幕截图时,必须确保屏幕截图数据保存在工作资料存储空间中。 - [C-1-11] 在将屏幕截图保存到工作资料时,不得捕获除工作资料应用窗口外的任何其他屏幕内容(系统栏、通知或任何个人资料内容),以确保个人资料数据不会保存在工作资料中。
如果设备实现声明 android.software.device_admin、android.software.managed_users 和 android.software.secure_lock_screen,则:
[C-2-1] 必须支持指定满足以下要求的单独锁定屏幕,以便仅向在受管资料中运行的应用授予访问权限。
- 设备实现必须遵从
DevicePolicyManager.ACTION_SET_NEW_PASSWORDintent,并显示一个界面,以便用户为受管资料配置单独的锁屏凭据。 - 受管资料的锁屏凭据必须使用与父级资料相同的凭据存储和管理机制,如 Android 开源项目网站上所述。
- 除非在通过
getParentProfileInstance返回的DevicePolicyManager实例上被调用,否则 DPC 密码政策必须仅适用于受管个人资料的锁定屏幕凭据。
- 设备实现必须遵从
当受管资料中的联系人信息显示在预安装的通话记录、通话界面、进行中和未接来电提醒、通讯录和消息应用中时,它们应带有用于表示受管资料应用的相同标记。
3.9.3 受管用户支持
如果设备实现声明 android.software.device_admin 和 android.software.managed_users,则:
- [C-1-1] 必须提供一种方式,让用户能够在
isLogoutEnabled返回true时在多用户会话中退出当前用户并切换回主要用户。这种方式必须让用户能够在锁屏的情况下(无需解锁设备)访问。
7. 硬件兼容性
7.4. 数据连接
7.4.1. 电话
如果设备实现支持移动数据网络连接,则:
- [C-SR-11] 强烈建议声明
android.hardware.telephony.data功能。
如果设备实现报告 android.hardware.telephony.data,则:
[C-12-1] 必须支持至少两个并发移动数据网络连接,例如 PDP 上下文、PDN 连接和 DN 连接。
9. 安全模型兼容性
9.18. 开发者验证 [新增部分]
设备实现:
- 可以包含对某种开发者验证工具服务的支持,以证明应用来自已知开发者。
如果设备实现通过在 config.xml 中定义 config_developerVerificationServiceProviderPackageName 来配置开发者验证工具,则:
- [9.18/C-1-1] 必须针对每一次应用软件包安装操作(包括新安装以及安装现有应用的更新)调用配置的
android.content.pm.verify.developer.DeveloperVerifierService。
设备实现:
- 也可以通过在
config.xml中定义config_developerVerificationPolicyDelegatePackageName来配置委托,以设置生效的政策。
如果配置了开发者验证工具,则设备实现:
- [9.18/C-2-1] 必须仅允许开发者验证工具或其已配置的委托来设置安装政策(在
android.content.pm.PackageInstaller中定义)。
如果是在软件包安装会话中调用验证工具,则设备实现:
[9.18/C-3-1] 必须在出现下列情况时阻止安装应用软件包:
- 安装未能通过开发者身份验证。
- 安装会话的开发者验证政策设置为
DEVELOPER_VERIFICATION_POLICY_NONE以外的任何值。 - 除非符合 9.18/C-3-2 或 9.18/C-3-3 所述的情况。
[9.18/C-3-2] 在下列情况下,无论政策或验证状态如何,都不得阻止安装应用软件包:
- 软件包是通过 Android 调试桥 (ADB) 安装。
- 软件包是已配置的开发者验证工具或其安装程序。
[9.18/C-3-3] 在满足下列所有条件的情况下,不得阻止安装应用软件包:
- 政策设置为
DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_WARN或DEVELOPER_VERIFICATION_POLICY_BLOCK_FAIL_OPEN。 - 报告指示验证未完成。
- 安装程序通过报告
DEVELOPER_VERIFICATION_USER_RESPONSE_INSTALL_ANYWAY指示用户明确请求继续安装。
- 政策设置为
无论受管设备的设备所有者或受管资料的资料所有者发起的安装操作是否符合政策或验证状态,都可以允许安装应用软件包,但强烈建议按照 9.18/C-3-1 中的要求阻止安装。