当您更新应用,使其为 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 限制。