Android 14 平台包含可能会影响您的应用的行为更改。以下行为更改适用于在 Android 14 上运行的所有应用,无论 targetSdkVersion 如何。应测试应用,然后根据需要对其进行修改以正确支持这些应用(如果适用)。
核心功能
默认情况下拒绝计划确切的警报
精确警报适用于用户预期的通知,或需要在精确时间发生的操作。从 Android 14 开始,大多数新安装的 Android 13 及更高版本的应用不再预先授予SCHEDULE_EXACT_ALARM权限,默认情况下会拒绝该权限。
了解有关计划精确警报的权限更改的详细信息.
上下文注册的广播在缓存应用时排队
在 Android 14 上,当应用处于缓存状态时,系统可能会将上下文注册的广播放入队列中。这类似于 Android 12(API 级别 31)为异步绑定程序事务引入的排队行为。清单声明的广播不会排队,并且应用将从缓存状态中删除以进行广播传递。
当应用离开缓存状态(例如返回到前台)时,系统会传递任何排队的广播。某些广播的多个实例可以合并为一个广播。
应用只能终止自己的后台进程
从 Android 14 开始,当您的应用调用 killBackgroundProcesses() 时,API 只能终止您自己应用的后台进程。
如果传入另一个应用的包名称,则此方法对该应用的后台进程没有影响,并且 Logcat 中会显示以下消息:
Invalid packageName: com.example.anotherapp
你的应用不应使用 killBackgroundProcesses()
API 或以其他方式尝试影响其他应用的进程生命周期,即使在较旧的操作系统版本上也是如此。Android 旨在将缓存的应用程序保留在后台,并在系统需要内存时自动杀死它们。如果你的应用不必要地终止了其他应用,则可能会降低系统性能并增加电池消耗,因为它要求稍后完全重启这些应用,这比恢复现有的缓存应用需要的资源要多得多。
注意:第三方应用无法改善 Android 设备的内存、电源或散热行为。您应确保您的应用符合 Google Play 关于误导性声明的政策。
安全
最低可安装目标 API 级别
从 Android 14 开始,无法安装targetSdkVersion 低于 23 的应用。要求应用满足这些最低目标 API 级别要求可提高用户的安全性和隐私性。
恶意软件通常以较旧的 API 级别为目标,以绕过较新的 Android 版本中引入的安全和隐私保护。例如,某些恶意软件应用使用 targetSdkVersion 22 来避免受到 Android 6.0 Marshmallow(API 级别 23)在 2015 年引入的运行时权限模型的影响。此 Android 14 更改使恶意软件更难避免安全和隐私改进。尝试安装面向较低 API 级别的应用程序将导致安装失败,并在 Logcat 中显示以下消息:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 23, but found 7
在升级到 Android 14 的设备上,targetSdkVersion
低于 23 的任何应用都将保持安装状态。
如果您需要测试面向较旧 API 级别的应用,请使用以下 ADB 命令:
adb install --bypass-low-target-sdk-block FILENAME.apk
媒体所有者包名称可能被编辑
媒体存储支持对OWNER_PACKAGE_NAME列的查询,该列指示存储特定媒体文件的应用。从 Android 14 开始,除非满足以下至少一项条件,否则系统会修改此值:
- 存储媒体文件的应用具有对其他应用始终可见的包名称。
-
查询媒体存储的应用请求QUERY_ALL_PACKAGES权限。
注意:使用
QUERY_ALL_PACKAGES
权限受 Google Play 政策的约束。
详细了解 Android 如何出于隐私目的过滤包装公开范围。
用户体验
对用户体验不可关闭通知的方式的更改
如果您的应用向用户显示不可关闭的前台通知,则 Android 14 已更改行为,允许用户关闭此类通知。
此更改适用于通过 Notification.Builder#setOngoingNotification.Builder#setOngoing(true) 设置Notification.FLAG_ONGOING_EVENT来阻止用户NotificationCompat.Builder#setOngoing(true)关闭前台通知的应用。FLAG_ONGOING_EVENT的行为已更改,使用户实际上可以关闭此类通知。
在以下情况下,这些类型的通知仍然不可关闭:
- 当手机被锁定时
- 如果用户选择“清除所有通知”操作(这有助于意外关闭)
此外,此新行为不适用于以下用例中的不可关闭通知:
-
使用 MediaStyle 创建的通知
- 将使用限制为安全和隐私案例的政策
- 适用于企业的设备策略控制器 (DPC) 和支持包
授予对照片和视频的部分访问权限
注意:如果您的应用已使用照片选取器,则无需执行任何操作即可支持此更改。
在 Android 14 上,当应用请求 Android 13(API 级别 33)中引入的任何视觉媒体权限时,用户可以授予对其照片和视频的部分访问权限:READ_MEDIA_IMAGES
或READ_MEDIA_VIDEO
.
新对话框显示以下权限选项:
- 选择照片和视频:安卓 14 中的新功能。用户选择要提供给你的应用的特定照片和视频。
- 全部允许:用户授予对设备上所有照片和视频的完整图库访问权限。
- 不允许:用户拒绝所有访问。
若要在应用中更优雅地处理此更改,请考虑声明新的READ_MEDIA_VISUAL_USER_SELECTED权限。详细了解如何支持用户向其媒体库授予部分权限的情况。
可及性
非线性字体缩放到 200%
从 Android 14 开始,该系统支持高达 200% 的字体缩放,为低视力用户提供符合 Web 内容无障碍指南 (WCAG) 的其他无障碍选项.
如果已使用缩放像素 (sp) 单位来定义文本大小,则此更改可能不会对应用产生太大影响。但是,应在启用最大字体大小 (200%) 的情况下执行 UI 测试,以确保应用可以容纳更大的字体大小而不影响可用性。