Wear OS 4 基于 Android 13 (API level 33),比 Wear OS 3 所基于的 Android 11 (API level 30) 高出几个版本。因此,当您为 Wear OS 应用在 Wear OS 4 上使用做准备时,您需要处理在 Android 12 和 Android 13 中对所有应用生效的系统行为变更。
您可以通过以 Android 13 (API level 33) 为目标,进一步提高您的应用与此 Wear OS 版本的兼容性。
权限变更
以下与权限相关的变更最有可能影响您在运行 Wear OS 4 或更高版本的设备上的 Wear OS 应用。
通知权限
在大多数情况下,用户必须授予您的应用通知运行时权限,包括当您的应用发布正在进行的活动的通知时。
当用户在运行 Wear OS 4 或更高版本的设备上安装您的应用时,您的应用的通知默认处于关闭状态。在发布本地通知或启动正在进行的活动之前,请通过调用 areNotificationsEnabled()
检查您的应用是否允许发布通知。如果此方法返回 true
,则您的应用可以显示通知。如果您的应用没有适当的权限,这些通知将静默失败,而不会抛出任何运行时异常。
当您在应用中请求 POST_NOTIFICATIONS
权限时,用户会看到图 1 中所示的系统权限对话框。
后台身体传感器权限
在运行 Wear OS 4 或更高版本的设备上,用户必须授予您的应用权限,才能在后台获取来自常见身体传感器(例如心率)的信息。
在请求后台访问身体传感器数据指南中了解更多信息。
大致位置权限
在运行 Wear OS 4 或更高版本的设备上,即使您的应用请求 ACCESS_FINE_LOCATION
运行时权限,用户也可以请求您的应用仅检索大致位置信息。
检查您的应用在用户仅授予大致位置权限时,是否仍能完成其关键用例,例如显示跑步路线。特别是,在使用 Wear OS 上的 Health Services 时,请考虑位置误差。
了解有关用户仅授予大致位置的更多信息。
应用组件和导航的变更
以下与应用组件和导航相关的变更最有可能影响您在运行 Wear OS 4 或更高版本的设备上的 Wear OS 应用。
Intent 过滤器阻止不匹配的 Intent
当您的应用向目标为 Android 13 或更高版本的另一个应用的导出组件发送 Intent 时,该 Intent 仅当与接收应用中的 <intent-filter>
元素匹配时才会送达。
了解如何将 Intent 与其他应用的 Intent 过滤器匹配。
根启动器活动行为
如果启动器活动声明了一个同时包含 ACTION_MAIN
和 CATEGORY_LAUNCHER
的 Intent 过滤器,则该活动位于任务的根。
如果用户从这种启动器活动导航到上一个屏幕,系统不会结束该启动器活动。相反,它会将该启动器活动置于后台。
了解有关根启动器活动和活动生命周期的此变更的更多信息。
应用链接验证
系统对 Android App Links 的验证方式进行了几项更改。特别是,系统强制执行更严格的 Intent 过滤器语法,以证明特定域中的 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 设备。