针对 Wear OS 更新应用的目标 SDK 版本 4

当您更新应用,使其为 Wear OS 4 做好准备后,可以通过以 Android 13(API 级别 33)为目标平台,进一步提高应用与此版本 Wear OS 的兼容性。

如果您更新目标 SDK 版本,请处理将对以 Android 12 或更高版本为目标平台的应用以及以 Android 13 或更高版本为目标平台的应用生效的系统行为变更。本指南后面部分介绍了对权限以及应用组件和导航行为所做的更改,请重点关注这些更改。

更新 build 文件

如需更新目标 SDK 版本,请打开模块级 build.gradlebuild.gradle.kts 文件,并使用 Android 13 所对应的值更新它们。

如何设置 build 文件中的值的格式取决于您所使用的 Android Gradle 插件 (AGP) 版本。

AGP 7.0.0 或更高版本

如果您使用的是 AGP 7.0.0 或更高版本,请使用以下 Android 13 所对应的值更新应用的 build.gradlebuild.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.gradlebuild.gradle.kts 文件:

Groovy

android {
    compileSdkVersion "33"
    ...
    defaultConfig {
        targetSdkVersion "33"
    }
}

Kotlin

android {
    compileSdkVersion = "33"
    ...
    defaultConfig {
        targetSdkVersion = "33"
    }
}

权限变更

本部分列出了对以 Android 13 为目标平台的应用有影响的权限的一些变更。

后台身体传感器权限

如需在后台从常见的身体传感器获取信息(例如心率),您需要请求 BODY_SENSORS_BACKGROUND 权限。

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

精确的闹钟权限

如要使用具有精确计时的闹钟(也称为精确闹钟),您必须声明 USE_EXACT_ALARMSCHEDULE_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 限制