当您更新应用,使其为 Wear OS 4 做好准备后,可以通过以 Android 13(API 级别 33)为目标平台,进一步提高应用与此版本 Wear OS 的兼容性。
如果您更新目标 SDK 版本,请处理将对以 Android 12 或更高版本为目标平台的应用以及以 Android 13 或更高版本为目标平台的应用生效的系统行为变更。本指南后面部分介绍了对权限以及应用组件和导航行为所做的更改,请重点关注这些更改。
更新 build 文件
如需更新目标 SDK 版本,请打开模块级 build.gradle
或 build.gradle.kts
文件,并使用 Android 13 所对应的值更新它们。
如何设置 build 文件中的值的格式取决于您所使用的 Android Gradle 插件 (AGP) 版本。
AGP 7.0.0 或更高版本
如果您使用的是 AGP 7.0.0 或更高版本,请使用以下 Android 13 所对应的值更新应用的 build.gradle
或 build.gradle.kts
文件:
Groovy
android { compileSdk 33 ... defaultConfig { targetSdk 33 } }
Kotlin
android { compileSdk = 33 ... defaultConfig { targetSdk = 33 } }
AGP 4.2.0 或更低版本
如果您使用的是 AGP 4.2.0 或更低版本,请使用以下 Android 13 所对应的值更新应用的 build.gradle
或 build.gradle.kts
文件:
Groovy
android { compileSdkVersion "33" ... defaultConfig { targetSdkVersion "33" } }
Kotlin
android { compileSdkVersion = "33" ... defaultConfig { targetSdkVersion = "33" } }
权限变更
本部分列出了对以 Android 13 为目标平台的应用有影响的一些权限变更。
后台身体传感器权限
如需在后台从常见的身体传感器获取信息(例如心率),您需要请求 BODY_SENSORS_BACKGROUND
权限。
如需了解详情,请参阅有关请求对身体传感器数据的后台访问权限的指南。
精确的闹钟权限
如要使用具有精确计时的闹钟(也称为精确闹钟),您必须声明 USE_EXACT_ALARM
或 SCHEDULE_EXACT_ALARM
权限。
除非应用的核心功能依赖于精确的闹钟(例如闹钟应用或日历应用),否则请改用不精确闹钟。大多数应用都可以使用不精确闹钟来安排任务和事件。
详细了解如何设置精确闹钟。
细化的媒体权限
如果您的应用需要访问其他应用创建的媒体文件,您必须请求以 READ_MEDIA_*
开头的细化媒体权限,而不是 READ_EXTERNAL_STORAGE
权限。如果您的应用之前已获得 READ_EXTERNAL_STORAGE
权限,则系统会自动授予所需的细化媒体权限。
详细了解细化的媒体权限。
应用组件和导航的变更
本部分列出了应用以 Android 13 为目标平台后,会对应用造成影响的一些应用组件和导航行为变更。
应用组件导出要求
如果您的应用包含使用 intent 过滤器的 activity、服务或广播接收器,您必须为这些应用组件明确声明 android:exported
属性。
详细了解更安全的组件导出。
指定待处理 intent 的可变性
您必须指定应用中的每个 PendingIntent
对象是可变的还是不可变的。在大多数情况下,应使用不可变的 PendingIntent
对象来保护 intent 内数据的完整性。
详细了解如何指定待处理 intent 的可变性。
前台服务启动限制
在大多数情况下,当应用在后台运行时无法启动前台服务。
详细了解与从后台启动前台服务相关的限制。
通知 trampoline 限制
用户与通知互动后,您无法在服务或广播接收器内调用 startActivity()
。这种插页式应用组件(其唯一功能是启动 activity)称为“通知 trampoline”。
详细了解通知 trampoline 限制。
为您推荐
- 注意:当 JavaScript 处于关闭状态时,系统会显示链接文字
- 针对 Wear OS 5 更新应用的目标 SDK 版本
- 行为变更:以 Android 12 为目标平台的应用
- 设置闹钟