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

Tipo de serviço em primeiro plano a ser declarado no manifesto em
android:foregroundServiceType
mediaProcessing
Permissão a ser declarada no manifesto
FOREGROUND_SERVICE_MEDIA_PROCESSING
Constante para transmitir para startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
Pré-requisitos do ambiente de execução
Nenhum
Descrição

Serviço para realizar operações demoradas em recursos de mídia, como converter mídia em diferentes formatos. O sistema permite que esse serviço seja executado por um tempo limitado. Em circunstâncias normais, esse limite de tempo seria de 6 horas a cada 24. Esse limite é compartilhado por todos os serviços em primeiro plano mediaProcessing de um app.

O app precisa interromper manualmente o serviço de processamento de mídia no seguinte cenário:

Se o período de tempo limite for atingido, o sistema vai chamar o método Service.onTimeout(int, int) do serviço. Nesse momento, o serviço tem alguns segundos para chamar Service.stopSelf(). Se o serviço não chamar Service.stopSelf(), um ANR vai ocorrer com esta mensagem de erro: "Um serviço em primeiro plano de <fgs_type> não parou dentro do tempo limite: <component_name>".

Observação: Service.onTimeout(int, int) não está disponível no Android 14 ou versões anteriores. Em dispositivos com essas versões, se um serviço de processamento de mídia atingir o período de tempo limite, o sistema vai armazenar o app em cache imediatamente. Por esse motivo, o app não deve esperar para receber uma notificação de tempo limite. Em vez disso, ele precisa encerrar o serviço em primeiro plano ou mudar para um serviço em segundo plano assim que apropriado.

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.