Android14测试版——行为更改:所有应用

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 中显示以下消息:

扫描二维码关注公众号,回复: 14973862 查看本文章
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_IMAGESREAD_MEDIA_VIDEO.

新对话框显示以下权限选项:

  • 选择照片和视频:安卓 14 中的新功能。用户选择要提供给你的应用的特定照片和视频。
  • 全部允许:用户授予对设备上所有照片和视频的完整图库访问权限。
  • 不允许:用户拒绝所有访问。

若要在应用中更优雅地处理此更改,请考虑声明新的READ_MEDIA_VISUAL_USER_SELECTED权限。详细了解如何支持用户向其媒体库授予部分权限的情况。

可及性

非线性字体缩放到 200%

​从 Android 14 开始,该系统支持高达 200% 的字体缩放,为低视力用户提供符合 Web 内容无障碍指南 (WCAG) 的其他无障碍选项.

如果已使用缩放像素 (sp) 单位来定义文本大小,则此更改可能不会对应用产生太大影响。但是,应在启用最大字体大小 (200%) 的情况下执行 UI 测试,以确保应用可以容纳更大的字体大小而不影响可用性。

猜你喜欢

转载自blog.csdn.net/mozushixin_1/article/details/130242805