Mudanças nos tipos de serviços em primeiro plano para o Android 15

Estamos fazendo as seguintes mudanças nos tipos de serviços em primeiro plano com o Android 15.

Mídia em processamento

要在清单中的以下位置声明的前台服务类型
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 或更低版本。在搭载这些版本的设备上,如果媒体处理服务达到超时期限,系统会立即缓存应用。因此,您的应用不应等待收到超时通知。相反,它应在适当情况下尽快终止前台服务或将其更改为后台服务。

Câmera

Os apps destinados ao Android 15 ou versões mais recentes não podem iniciar um serviço de câmera em primeiro plano em um broadcast receiver BOOT_COMPLETED. Para mais informações, consulte Restrições em broadcast receivers BOOT_COMPLETED que iniciam serviços em primeiro plano.

Sincronização de dados

Os apps destinados ao Android 15 ou mais recentes não podem iniciar um serviço em primeiro plano de sincronização de dados de um broadcast receiver BOOT_COMPLETED. Para mais informações, consulte Restrições em broadcast receivers BOOT_COMPLETED que iniciam serviços em primeiro plano.

Controles de mídia

Os apps destinados ao Android 15 ou mais recente não podem iniciar um serviço em primeiro plano de reprodução de mídia em um broadcast receiver BOOT_COMPLETED. Para mais informações, consulte Restrições em broadcast receivers BOOT_COMPLETED que iniciam serviços em primeiro plano.

Projeção de mídia

Os apps destinados ao Android 15 ou mais recentes não podem iniciar um serviço em primeiro plano de projeção de mídia em um broadcast receiver BOOT_COMPLETED. Para mais informações, consulte Restrições em broadcast receivers BOOT_COMPLETED que iniciam serviços em primeiro plano.

Microfone

Os apps destinados ao Android 14 (nível 34 da API) ou mais recentes não podem iniciar um serviço em primeiro plano do microfone em um broadcast receiver BOOT_COMPLETED. Para mais informações, consulte Restrições em broadcast receivers BOOT_COMPLETED que iniciam serviços em primeiro plano.

Ligação telefônica

Os apps destinados ao Android 15 ou mais recentes não podem iniciar um serviço em primeiro plano de chamada de telefone em um broadcast receiver BOOT_COMPLETED. Para mais informações, consulte Restrições em broadcast receivers BOOT_COMPLETED que iniciam serviços em primeiro plano.