Estamos fazendo as seguintes mudanças nos tipos de serviço em primeiro plano com o Android 15.
Mídia em processamento
- Tipo de serviço em primeiro plano a ser declarado no manifesto
android:foregroundServiceType
mediaProcessing
- Permissão a ser declarada no manifesto
FOREGROUND_SERVICE_MEDIA_PROCESSING
- Constante a ser transmitida para
startForeground()
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- Pré-requisitos de tempo de execução
- Nenhum
- Descrição
Serviço para realizar operações demoradas em recursos de mídia, como a conversão de mídia em formatos diferentes. O sistema permite que esse serviço seja executado por um tempo limitado. Em circunstâncias normais, esse limite de tempo seria de seis horas a cada 24. Esse limite é compartilhado por todos os serviços em primeiro plano
mediaProcessing
de um app.Seu app precisa interromper manualmente o serviço de processamento de mídia no seguinte cenário:
- Quando a operação de transcodificação terminar ou atingir um estado de falha, faça com que o
serviço chame
Service.stopForeground()
eService.stopSelf()
para interromper o serviço completamente.
- Quando a operação de transcodificação terminar ou atingir um estado de falha, faça com que o
serviço chame
Se o tempo limite for atingido, o sistema chamará o método
Service.onTimeout(int, int)
do serviço. Nesse momento, o serviço tem alguns segundos para chamarService.stopSelf()
. Se o serviço não chamarService.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: o
Service.onTimeout(int, int)
não está disponível no Android 14 ou em versões anteriores. Em dispositivos com essas versões, se um serviço de processamento de mídia atingir o tempo limite, o sistema vai armazenar o app imediatamente em cache. Por esse motivo, o app não pode 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
Apps direcionados ao Android 15 ou versões mais recentes não podem iniciar um
serviço de câmera em primeiro plano usando 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
Apps destinados ao Android 15 ou versões mais recentes não podem iniciar um
serviço de sincronização de dados em primeiro plano usando um broadcast receiver BOOT_COMPLETED
.
Para mais informações, consulte
Restrições em broadcast receivers BOOT_COMPLETED
que iniciam serviços em
primeiro plano.
Reprodução de mídia
Apps direcionados ao Android 15 ou versões mais recentes não podem iniciar um
serviço de reprodução de mídia em primeiro plano usando 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
Apps direcionados ao Android 15 ou versões mais recentes não podem iniciar um
serviço de projeção de mídia em primeiro plano usando 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
Apps direcionados ao Android 14 (nível 34 da API) ou versões mais recentes não podem iniciar um
serviço de microfone em primeiro plano usando 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 direcionados ao Android 15 ou versões mais recentes não podem iniciar um
serviço de chamada telefônica em primeiro plano usando um broadcast receiver BOOT_COMPLETED
.
Para mais informações, consulte
Restrições em broadcast receivers BOOT_COMPLETED
que iniciam serviços em
primeiro plano.