让您的应用为 Wear OS 4 中的行为变更做好准备

Wear OS 4 基于 Android 13(API 级别 33),该版本比 Wear OS 3 所依赖的版本 Android 11(API 级别 30)高了几个版本。因此,如果您准备在 Wear OS 4 中使用 Wear OS 应用,则需要处理对 Android 12Android 13 中的所有应用生效的系统行为更改。

您可以 Android 13(API 级别 33)为目标平台,进一步提高应用与此版本的 Wear OS 的兼容性。

权限变更

以下与权限相关的变更最有可能影响搭载 Wear OS 4 的设备上的 Wear OS 应用。

通知权限

“允许”选项是对话框中的第一个按钮
图 1. 要求用户允许您的 Wear OS 应用发布通知的系统权限对话框。用户可以在允许不允许之间进行选择。

在大多数情况下,用户必须为您的应用授予通知运行时权限,包括当应用发布持续性活动通知时。

注意:通知权限不适用于桥接通知,以及几个豁免的特定使用情形,例如与媒体会话相关的使用情形。

当用户在搭载 Wear OS 4 的设备上安装您的应用时,应用的通知默认处于关闭状态。在发布本地通知或启动持续性活动之前,请调用 areNotificationsEnabled() 检查是否允许您的应用发布通知。如果此方法返回 true,您的应用可以显示通知。如果您的应用没有适当的权限,这些通知将静默失败,而不会抛出任何运行时异常。

当您在应用中请求 POST_NOTIFICATIONS 权限时,用户会看到图 1 中所示的系统权限对话框。

后台身体传感器权限

在搭载 Wear OS 4 的设备上,用户必须向您的应用授予在后台从常见身体传感器获取信息(例如心率)的权限。

如需了解详情,请参阅有关请求对身体传感器数据的后台访问权限的指南。

大致位置信息权限

在搭载 Wear OS 4 的设备上,用户可以请求您的应用仅检索大致位置信息,即使您的应用请求 ACCESS_FINE_LOCATION 运行时权限也是如此。

如果用户仅授予大致位置信息,请检查应用是否仍可实现其关键应用场景,例如显示跑步路线。特别是,在 Wear OS 上使用健康服务时,请将定位错误考虑在内。

详细了解用户如何只能授予大致位置信息使用权

应用组件和导航的变更

以下与应用组件和导航相关的变更最有可能影响搭载 Wear OS 4 的设备上的 Wear OS 应用。

intent 过滤器会屏蔽不匹配的 intent

当您的应用向以 Android 13 或更高版本为目标平台的其他应用的导出组件发送 intent 时,仅当该 intent 与接收应用中的 <intent-filter> 元素匹配时,系统才会传送该 intent。

了解如何将 intent 与其他应用的 intent 过滤器匹配

根启动器 activity 行为

如果启动器 activity 声明了同时包含 ACTION_MAINCATEGORY_LAUNCHER 的 Intent 过滤器,则该启动器 activity 位于任务的根。

如果用户从此类启动器 activity 导航到上一屏幕,则系统不会完成启动器 activity。相反,它会将启动器 activity 置于后台。

详细了解对根启动器 activity 和 activity 生命周期的更改。

系统对 Android App Links 的验证方式进行了一些更改。具体而言,系统会强制执行更严格的 intent 过滤器语法,以证明特定网域中的网址应直接在您的应用中打开内容。这些更改会提升应用链接体验的可靠性,使应用开发者和最终用户能够更好地进行控制。

如需测试声明的可靠性,请手动调用域名验证

移除了系统提醒窗口界面

Wear OS 4 移除了用于授予 SYSTEM_ALERT_WINDOW 权限的系统界面。此界面适用于部分搭载 Wear OS 3 及更低版本的设备。

如果您使用 ACTION_MANAGE_OVERLAY_PERMISSION 引导用户前往某个设置页面,并且此类页面可以将您的应用显示在其他应用上层,请更新您的应用的逻辑。例如,如果您依赖于系统提醒窗口显示重要消息,请改用通知

电源和数据管理功能的变更

以下与电源和数据管理相关的变更最有可能影响搭载 Wear OS 4 的设备上的 Wear OS 应用。

受限应用待机模式存储分区

如果您的应用长时间未使用,或者调用了过多的广播和绑定,系统会将您的应用放入“受限”应用待机模式存储分区

应用休眠

如果用户几个月没有与您的应用互动,系统会将您的应用置于休眠状态。

备份和恢复

从 Wear OS 4 开始,如果特定 Wear OS 设备支持云端备份,用户可以将其数据备份到云端,以便从该设备传输数据,还可以从云端恢复数据,以将数据传输到新的 Wear OS 设备上。