为 Wear OS 4 中的行为变化准备您的应用

Wear OS 4 基于 Android 13 (API 级别 33),该级别比 Wear OS 3 基于的版本 Android 11 (API 级别 30) 高出好几个版本。因此,在准备您的 Wear OS 应用以在 Wear OS 4 上使用时,您需要处理对 Android 12Android 13 中所有应用生效的系统行为变化。

您可以通过 将目标设置为 Android 13 (API 级别 33) 来进一步提高您的应用与此版本 Wear OS 的兼容性。

权限的更改

以下与权限相关的更改最有可能影响在运行 Wear OS 4 或更高版本的设备上的 Wear OS 应用。

通知权限

The allow option is the first button in the dialog
图 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 应用程序。

意图过滤器阻止不匹配的意图

当您的应用程序将意图发送到另一个面向 Android 13 或更高版本的应用程序的导出组件时,该意图仅在它与接收应用程序中的<intent-filter> 元素匹配时才会被传递。

了解如何将意图与其他应用程序的意图过滤器匹配

根启动器活动的行为

如果启动器活动声明的意图过滤器包含 ACTION_MAINCATEGORY_LAUNCHER,则该活动位于任务的

如果用户从这种启动器活动导航到上一个屏幕,系统不会完成启动器活动。相反,它会将启动器活动置于后台。

详细了解此对根启动器活动和活动生命周期的变更。

系统对 Android 应用程序链接的验证方式进行了一些变更。特别是,系统对意图过滤器语法进行了更严格的执行,以证明特定域中的 URL 应该直接在您的应用程序中打开内容。这些变更提高了应用程序链接体验的可靠性,为应用程序开发者和最终用户提供了更多控制权。

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

系统警报窗口 UI 已移除

Wear OS 4 移除了解决授予SYSTEM_ALERT_WINDOW 权限的系统 UI。此 UI 在某些运行 Wear OS 3 及更低版本的设备上可用。

如果您使用ACTION_MANAGE_OVERLAY_PERMISSION 将用户发送到设置页面,用户可以在该页面上显示您的应用程序,使其覆盖其他应用程序,请更新应用程序的逻辑。例如,如果您依赖系统警报窗口来显示重要消息,请改用通知

电源和数据管理的变更

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

受限应用程序待机存储桶

如果应用程序长时间未使用,或者应用程序调用了过多的广播和绑定,系统会将您的应用程序放置在“受限”应用程序待机存储桶 中。

应用程序休眠

如果用户几个月未与您的应用程序交互,系统会将您的应用程序置于休眠状态。

备份和恢复

从 Wear OS 4 开始,如果特定 Wear OS 设备支持云备份,用户可以将数据备份到云端以将数据从该设备转移,并且可以从云端恢复数据以将数据转移到新的 Wear OS 设备。