Android 15 前台服务类型变更

Android 15 对前台服务类型进行了以下更改。

媒体处理

在清单中声明的前台服务类型
android:foregroundServiceType
mediaProcessing
在您的清单中声明的权限
FOREGROUND_SERVICE_MEDIA_PROCESSING
传递给 startForeground() 的常量
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
运行时先决条件
说明

用于对媒体资源执行耗时操作的服务,例如将媒体转换为不同格式。系统允许此服务在有限时间内运行;在正常情况下,此时间限制为每 24 小时中的 6 小时。(此限制由应用的所有 mediaProcessing 前台服务共享。)

在以下情况下,您的应用应手动停止媒体处理服务

如果达到超时期限,系统会调用服务的 Service.onTimeout(int, int) 方法。此时,服务有几秒钟时间调用 Service.stopSelf()。如果服务未调用 Service.stopSelf(),将发生 ANR,并显示此错误消息:“类型为 <fgs_type> 的前台服务未在其超时时间内停止:<component_name>”。

注意Service.onTimeout(int, int) 在 Android 14 或更低版本上不可用。在运行这些版本的设备上,如果媒体处理服务达到超时期限,系统会立即缓存该应用。因此,您的应用不应等待获取超时通知。相反,它应在适当的时候立即终止前台服务或将其更改为后台服务。

相机

以 Android 15 或更高版本为目标的应用不允许从 BOOT_COMPLETED 广播接收器启动相机前台服务。如需了解更多信息,请参阅 BOOT_COMPLETED 广播接收器启动前台服务的限制

数据同步

以 Android 15 或更高版本为目标的应用不允许从 BOOT_COMPLETED 广播接收器启动数据同步前台服务。如需了解更多信息,请参阅 BOOT_COMPLETED 广播接收器启动前台服务的限制

媒体播放

以 Android 15 或更高版本为目标的应用不允许从 BOOT_COMPLETED 广播接收器启动媒体播放前台服务。如需了解更多信息,请参阅 BOOT_COMPLETED 广播接收器启动前台服务的限制

媒体投影

以 Android 15 或更高版本为目标的应用不允许从 BOOT_COMPLETED 广播接收器启动媒体投影前台服务。如需了解更多信息,请参阅 BOOT_COMPLETED 广播接收器启动前台服务的限制

麦克风

以 Android 14 (API level 34) 或更高版本为目标的应用不允许从 BOOT_COMPLETED 广播接收器启动麦克风前台服务。如需了解更多信息,请参阅 BOOT_COMPLETED 广播接收器启动前台服务的限制

电话

以 Android 15 或更高版本为目标的应用不允许从 BOOT_COMPLETED 广播接收器启动电话前台服务。如需了解更多信息,请参阅 BOOT_COMPLETED 广播接收器启动前台服务的限制