Para os desenvolvedores criarem apps que proporcionem uma experiência consistente ao usuário, estamos lançando outros tipos de serviço em primeiro plano e um novo conjunto de restrições de política relacionadas. Este artigo explica quais são os próximos requisitos de serviços em primeiro plano e como declarar informações sobre eles no Play Console. Ele também detalha os requisitos de uso das notificações de intent para tela cheia.
Requisitos de serviços em primeiro plano para o Android 14
Para ajudar a identificar quais casos de uso são adequados para serviços em primeiro plano e definir claramente a intenção do trabalho em segundo plano do app, o Android 14 e as versões mais recentes exigem que você faça o seguinte antes de usar um serviço em primeiro plano:
- Declare os tipos de serviço em primeiro plano no manifesto. É necessário fazer isso para cada serviço em primeiro plano que você pretende usar.
- Se aplicável ao tipo selecionado, declare e solicite a permissão de serviço em primeiro plano adequada para cada um.
A seção Permissões para serviços em primeiro plano (FGS, na sigla em inglês) da nossa política contra abuso de dispositivos e de rede descreve em detalhes os critérios para o uso de serviços em primeiro plano. É necessário declarar os tipos de serviço em primeiro plano ao atualizar para o Android 14.
Declarar as informações do serviço em primeiro plano no Play Console
Quando os apps forem direcionados ao Android 14 e versões mais recentes, vai ser necessário declarar todos os tipos de serviço em primeiro plano usados em uma nova declaração na página Conteúdo do app (Política > Conteúdo do app) no Play Console.
Para cada tipo de serviço em primeiro plano que você declarar, faça o seguinte:
- Descreva a funcionalidade do app que usa cada tipo de serviço em primeiro plano.
- Descreva como o usuário é afetado se:
- a tarefa é adiada pelo sistema (não começa imediatamente); e/ou
- a tarefa é interrompida pelo sistema (pausada e/ou reiniciada).
- Inclua um link para um vídeo demonstrando cada recurso de serviço em primeiro plano. O vídeo precisa mostrar as etapas necessárias para o usuário acionar o recurso no app.
- Escolha seu caso de uso específico para cada tipo de serviço em primeiro plano. Vamos mostrar uma lista predefinida de casos de uso para você escolher. Confira algumas das opções associadas aos tipos de serviço em primeiro plano no gráfico abaixo. Esses são apenas alguns exemplos. Se o caso de uso não estiver na lista, insira manualmente.
Para determinados casos, sugerimos usar APIs alternativas. Para conferir uma lista desses casos de uso e as APIs recomendadas, acesse o site para desenvolvedores Android.
Observação: a lista abaixo tem apenas alguns exemplos. Para determinar se o acesso é adequado para serviços em primeiro plano, consulte a seção Uso de serviço em primeiro plano para casos de uso não mencionados abaixo.
Tipo de serviço em primeiro plano | Casos de uso | Descrições e exemplos |
---|---|---|
TYPE_CAMERA |
Stream da câmera em segundo plano | Continue acessando a câmera em segundo plano. Por exemplo, apps de chat por vídeo que permitem várias tarefas. |
TYPE_CONNECTED_DEVICE |
Transferência contínua de dados para um dispositivo externo | Faça interações com dispositivos externos, incluindo transferência de dados que exigem uma conexão Bluetooth, NFC, infravermelho, USB ou de rede. Por exemplo, wearables, babás eletrônicas, fones de ouvido e carros. |
TYPE_DATA_SYNC |
Transferência de rede: backup e restauração | Use para recursos especificamente iniciados pelo usuário. Por exemplo, selecionar uma determinada foto para fazer backup na nuvem em vez do backup automático diário de todas as fotos novas. |
Transferência de rede: upload ou download | Por exemplo, busque dados e faça o processamento do lado do servidor. | |
Processamento local: transcodificação de mídia | Converta arquivos de mídia, como áudio e vídeo, de um formato para outro. Por exemplo, recursos como edição de vídeo. | |
Processamento local: importação ou exportação | Inclui a migração de arquivos do cartão SD. | |
Processamento local: outras opções | Use especificamente para trabalhos iniciados pelo usuário, não para tarefas comuns iniciadas pelo sistema ou pelo servidor. Por exemplo, criptografia e redimensionamento. | |
TYPE_HEALTH |
Sincronização de dados de saúde | Sincronize dados de saúde para apps na categoria de condicionamento físico, como entre apps ou para coletar dados pelo rastreamento no dispositivo. Por exemplo, contagem de passos e monitoramento de atividade física. |
TYPE_LOCATION |
Atualizações da localização em segundo plano: compartilhamento de local iniciado pelo usuário | Por exemplo, um recurso para encontrar amigos ou monitorar a atividade do veículo. |
Atualizações da localização em segundo plano: navegação | Por exemplo, para manter o trajeto do carro nos mapas ou rastrear viagens para transporte por aplicativo. | |
Fronteira geográfica virtual | Defina os parâmetros que cercam as áreas de interesse. | |
TYPE_MEDIA_PLAYBACK |
Reprodução de mídia | Continue a reprodução de áudio ou vídeo em segundo plano, incluindo streaming. |
Exibição picture-in-picture | Use nos casos em que o formato da mídia é minimizado durante a reprodução em segundo plano. | |
TYPE_MEDIA_PROJECTION |
Projeção de mídia ou conteúdo e streaming ou gravação com a API MediaProjection | Projete mídia em telas não principais ou dispositivos externos usando as APIs MediaProjection, incluindo streaming. |
TYPE_MICROPHONE |
Acesso ao áudio em segundo plano | Capture entradas de áudio, como comandos de voz para um assistente virtual (sem salvar as informações) ou gravação de voz. |
TYPE_PHONE_CALL |
Chamadas: APIs de celular/VoIP/telecomunicações | Ofereça compatibilidade com vários recursos de discador relacionados a chamadas. |
TYPE_REMOTE_MESSAGING |
Redirecionamento de comunicações de texto para outros dispositivos | Ajuda na continuidade das tarefas de mensagens de um usuário ao trocar de dispositivo. Por exemplo, permita que os usuários enviem mensagens de texto por um cliente da Web lendo um QR code e estabelecendo uma conexão entre o cliente da Web e o smartphone. A opção não é limitada a SMS. |
A declaração vai estar disponível a partir de novembro de 2023. Você vai ter tempo para preencher a declaração, receber feedback e fazer os ajustes necessários.
Requisitos de intent para tela cheia no Android 14
Você pode usar as notificações de intent para tela cheia ao compartilhar mensagens de alta prioridade que exigem a atenção imediata do usuário. Para garantir que essa permissão seja limitada aos casos de uso adequados de alta prioridade, no Android 14, adicionamos restrições ao uso da permissão USE_FULL_SCREEN_INTENT
. Limitar as notificações dessa forma ajuda a garantir uma experiência melhor para os usuários.
Se você usa a permissão USE_FULL_SCREEN_INTENT
, é necessário preencher a declaração do Play Console a partir de 31 de maio de 2024 para indicar se o app tem uma funcionalidade principal permitida e se qualifica para a concessão automática. A partir de 22 de janeiro de 2025, para apps destinados ao Android 14 e versões mais recentes, somente aqueles que tiverem funcionalidades de chamada ou alarme terão essa permissão ativada por padrão. Os outros vão precisar da autorização do usuário para usar a permissão USE_FULL_SCREEN_INTENT
. Os desenvolvedores de apps que não preencheram a declaração ou não foram aprovados para a ativação padrão precisarão pedir aos usuários que concedam permissão para novas instalações e fazer a degradação suave se a permissão for negada.
Perguntas frequentes
O que vai mudar para os serviços em primeiro plano no Android 14?Lançamos vários novos tipos de serviço em primeiro plano, e será obrigatório declarar cada um com a permissão adequada. Por exemplo, se você estiver declarando o tipo de serviço em primeiro plano "camera", também vai precisar declarar a permissão FOREGROUND_SERVICE_CAMERA. Além disso, o uso em primeiro plano precisa obedecer aos outros requisitos da política contra abuso de dispositivos e de rede.
Escolha o tipo que corresponda melhor ao uso pretendido. Por exemplo, um app de exercícios que monitora os treinos do usuário pode declarar o tipo de serviço em primeiro plano "health". Também é possível escolher vários tipos, se for o caso do app.
Quando os apps direcionados ao Android 14 usam um serviço em primeiro plano, os desenvolvedores precisam declarar a permissão adequada para o tipo de serviço. Por exemplo, se o app usa o tipo de serviço em primeiro plano "location", será necessário declarar a permissão FOREGROUND_SERVICE_LOCATION. As permissões de serviços em primeiro plano que se referem a um tipo específico são definidas como permissões normais e concedidas por padrão na instalação. Os usuários não podem revogar essas permissões.
Dependendo do tipo de serviço em primeiro plano, talvez haja outros requisitos do sistema. Alguns deles podem ser permissões de execução, que precisam ser concedidas pelos usuários antes do uso do serviço. Por exemplo, se você estiver usando o tipo de serviço em primeiro plano "location", o usuário também precisará conceder a permissão ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION. Consulte a documentação para conferir as informações mais recentes.
Em alguns cenários, se o caso de uso atender a outras características necessárias para o uso dos serviços em primeiro plano (conforme descrito na política), será possível declarar o tipo de serviço em primeiro plano TYPE_SPECIAL_USE
. Todos os tipos de serviço em primeiro plano estão sujeitos a revisão.
Significa que o usuário precisa estar ciente de que uma tarefa de serviço em primeiro plano está em execução no dispositivo. Os usuários são considerados cientes se iniciam a ação por conta própria. Por exemplo, o usuário toca uma música ou monitora uma corrida. O app também pode informar os usuários sobre um serviço em primeiro plano em andamento com uma notificação clara e precisa na barra de tarefas do dispositivo.
Se você segmentar uma versão anterior ao Android 14, continue usando o atributo android:foregroundServiceType
no elemento <service> do arquivo de manifesto do app.
Os jobs de transferência de dados iniciada pelo usuário são projetados para simplificar as transferências de dados pela rede. Eles têm rastreamento de restrições e gerenciam automaticamente os wake locks. O tipo de serviço em primeiro plano "dataSync" pode incluir a transferência de dados local ou por uma rede, além do processamento local de dados no dispositivo. Se o caso de uso for transferir dados por uma rede (como Wi-Fi, móvel ou Bluetooth) em resposta a uma solicitação explícita do usuário, recomendamos usar o job de transferência de dados iniciada pelo usuário em vez do tipo de serviço em primeiro plano "dataSync".
No Android 14, USE_FULL_SCREEN_INTENT
vai mudar de uma permissão normal para uma permissão de acesso especial para apps. Com isso, apenas os apps com funcionalidades principais que sejam casos de uso de alta prioridade para definir alarmes ou receber ligações ou videochamadas vão receber a permissão USE_FULL_SCREEN_INTENT
automaticamente. Para entender o que é uma funcionalidade principal, pense no objetivo central do app: sem essa funcionalidade, o app ficaria corrompido ou inutilizável. Outros apps também podem usar essa permissão, mas precisam que o usuário a conceda.
Essas mudanças vão entrar em vigor em 31 de maio de 2024.
Quando o app for direcionado ao Android 14 ou versões mais recentes, você vai ter a opção de declarar que ele é um app de funcionalidade principal para intents de tela cheia na página Conteúdo do app (Política > Conteúdo do app) no Play Console. A declaração vai estar disponível a partir de abril de 2024, e você vai ter tempo para a preencher.