位置权限
使用以 Android 12 或更高版本为目标平台的应用时,用户可以请求应用只能访问大致位置信息。
如果您的应用以 Android 12 或更高版本为目标平台,并请求 ACCESS_FINE_LOCATION
运行时权限,您还必须请求 ACCESS_COARSE_LOCATION
权限。您必须在单个运行时请求中包含这两项权限。
注意:如果您的应用请求 ACCESS_COARSE_LOCATION
但未请求 ACCESS_FINE_LOCATION
,则此变更不会影响您的应用。
应用休眠
Android 12 在 Android 11(API 级别 30)中引入的自动重置权限行为的基础上进行了扩展。如果您的应用以 Android 12 为目标平台,并且用户有几个月未与您的应用互动,则系统会自动重置授予的所有权限并将您的应用置于休眠状态。
Andorid12的应用休眠具体包括:
Your app's runtime permissions are reset. This action has the same effect as if the user viewed a permission in system settings and changed your app's access level to Deny.
Your app can't run jobs or alerts from the background.
Your app can't receive push notifications, including high-priority messages that are sent through Firebase Cloud Messaging.
Any files in your app's cache are removed.
android:exported
如果您的应用以 Android 12 或更高版本为目标平台,且包含使用 intent 过滤器的 activity、服务或广播接收器,您必须为这些应用组件显式声明 android:exported
属性。之前是如果没声明,隐士默认android:exported
=true。现在必须显示声明。否则应用将无法在搭载 Android 12 或更高版本的设备上进行安装。如果应用组件包含 LAUNCHER
类别,请将 android:exported
设置为 true
。在大多数其他情况下,请将 android:exported
设置为 false
。
应用启动画面
如果您之前在 Android 11 或更低版本中实现了自定义启动画面,则需要将您的应用迁移到 SplashScreen
API,以确保它从 Android 12 开始正确显示。如果不迁移您的应用,则可能会导致应用启动体验变差或出乎预期。
此外,从 Android 12 开始,在所有应用的冷启动和温启动期间,系统始终会应用新的 Android 系统默认启动画面。 默认情况下,此系统默认启动画面由应用的启动器图标元素和主题的 windowBackground
(如果是单色)构成。