Android12适配

位置权限

使用以 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(如果是单色)构成。

上一篇:linux typora+smms图床


下一篇:java中比较两个日期的大小的所有方式