我们在 Android 15 中对前台服务类型进行了以下更改。
媒体处理
- 在清单中声明的前台服务类型位于
android:foregroundServiceType
mediaProcessing
- 在清单中声明的权限
FOREGROUND_SERVICE_MEDIA_PROCESSING
- 传递给
startForeground()
的常量 FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- 运行时先决条件
- 无
- 描述
用于对媒体资源执行耗时操作的服务,例如将媒体转换为不同的格式。系统允许此服务运行有限的时间;在正常情况下,此时间限制为每 24 小时 6 小时。(此限制由应用的所有
mediaProcessing
前台服务共享。)在以下情况下,您的应用应手动停止媒体处理服务
- 转码操作完成或达到失败状态时,服务应调用
Service.stopForeground()
和Service.stopSelf()
以完全停止服务。
- 转码操作完成或达到失败状态时,服务应调用
如果达到超时时间,系统会调用服务的
Service.onTimeout(int, int)
方法。此时,服务只有几秒钟的时间来调用Service.stopSelf()
。如果服务未调用Service.stopSelf()
,则会发生 ANR,并显示以下错误消息:“<fgs_type> 的前台服务未在其超时时间内停止:<component_name>”。注意:Android 14 或更低版本上不提供
Service.onTimeout(int, int)
。在运行这些版本的设备上,如果媒体处理服务达到超时时间,系统会立即缓存应用。因此,您的应用不应等待超时通知。相反,它应该尽快终止前台服务或将其更改为后台服务。
相机
以 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 级别 34)或更高版本为目标的应用不允许从 BOOT_COMPLETED
广播接收器启动麦克风前台服务。有关更多信息,请参阅 启动前台服务的 BOOT_COMPLETED
广播接收器的限制。
电话
目标 Android 15 或更高版本的应用不允许从 BOOT_COMPLETED
广播接收器启动前台电话服务。更多信息,请参见 启动前台服务的 BOOT_COMPLETED
广播接收器的限制。