Papéis do Android

Um papel é um nome exclusivo no sistema associado a determinadas permissões e privilégios. Os apps podem solicitar a retenção de determinadas funções usando a API Android, especificamente invocando métodos na classe RoleManager.

Confira na lista a seguir os papéis disponíveis e os requisitos correspondentes:

Função Requisitos
ASSISTANT Pelo menos um destes:
  • O app tem uma atividade que realiza ações de assistência, considerando as informações sobre o contexto do usuário quando ele solicitou a assistência (por exemplo, o nome do pacote do app em primeiro plano atual e as informações contextuais dele).
  • O app tem um serviço de interação por voz sempre ativado controlado pela permissão android.permission.BIND_VOICE_INTERACTION, que pode realizar reconhecimento de voz e hospedar sessões de interação por voz ativas. Além disso, o app tem uma flag explícita indicando que o serviço é capaz de processar a ação de assistência.
BROWSER Todas as opções a seguir:
  • O app tem uma atividade que pode ser invocada por solicitações de intent implícita, que mostra uma página da Web correspondente a um endereço http://.
  • O app precisa processar a navegação entre links. Ou seja, se o usuário estiver visualizando uma página da Web e clicar em um endereço http:// no texto, o app precisará mostrar o conteúdo correspondente ao link selecionado sem intervenção adicional do usuário.
  • O app precisa fornecer as informações de geolocalização atuais do dispositivo para páginas da Web quando solicitado e se o usuário aprovar a solicitação.
DIALER Todas as opções a seguir:
  • O app tem uma atividade que pode ser invocada por solicitações de intent implícita e que fornece a interface do usuário durante a chamada enquanto o dispositivo está em uma ligação.
  • O app pode processar intents de chamadas recebidas, mostrar as informações relacionadas à chamada (por exemplo, o número de telefone do autor da chamada) ao usuário e permitir que ele atenda ou recuse a ligação.
  • O app oferece ao usuário uma maneira de iniciar chamadas e ver um histórico de chamadas no dispositivo.
SMS Todas as opções a seguir:
  • O app atende a todos os requisitos para apps de SMS.
  • O app tem uma atividade que pode ser invocada por solicitações de intent implícita que enviam uma mensagem para um número de telefone.
  • O app tem um serviço controlado pela permissão android.permission.SEND_RESPOND_VIA_MESSAGE e pode ser invocado por intents implícitos, que podem entregar mensagens recebidas do app Telefone quando o usuário opta por responder por mensagem durante uma chamada recebida. O app pode enviar mensagens pelo próprio sistema de mensagens.
  • O app tem dois broadcast receivers, um controlado pela permissão android.permission.BROADCAST_SMS e outro pela permissão android.permission.BROADCAST_WAP_PUSH, que podem detectar mensagens SMS e MMS baseadas em texto enviadas ao dispositivo, respectivamente. O app é responsável por gravar as mensagens no provedor de SMS e notificar os usuários.
EMERGENCY Todas as opções a seguir:
  • O app é um app do sistema.
  • O app tem uma atividade que apresenta as informações de emergência do usuário. Qualquer pessoa pode acessar essa tela pelo botão "Emergência" na atividade "Discador de emergência".
HOME O app tem uma atividade que pode iniciar a tela inicial quando o usuário pressiona o botão home. A tela inicial precisa mostrar ícones de apps, widgets e oferecer suporte à navegação com base em botões ou gestos (por exemplo, deslizar para cima para ver todos os apps).
CALL_REDIRECTION O app tem um serviço controlado pela permissão android.permission.BIND_CALL_REDIRECTION_SERVICE a que a estrutura de telecomunicações pode se vincular. O serviço recebe o número de telefone de saída da estrutura de telecomunicações e executa uma das seguintes ações:
  • Permita que a chamada seja feita como está.
  • Mude o número de saída para rotear por um número de proxy.
  • Cancele a ligação.
CALL_SCREENING O app tem um serviço controlado pela permissão android.permission.BIND_SCREENING_SERVICE, que realiza duas funções:
  • Bloqueio e filtro de ligações:o serviço pode escolher quais ligações devem ser enviadas ao app discador no smartphone (e potencialmente tocar, considerando o modo Não perturbe ou o volume) e quais devem ser enviadas silenciosamente para o correio de voz.
  • Identificação de chamadas:o serviço pode identificar e mostrar informações sobre uma chamada em uma interface do usuário.
SYSTEM_GALLERY Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app oferece uma interface para os usuários armazenarem, organizarem e mostrarem os vídeos e imagens.
SYSTEM_AUTOMOTIVE_CLUSTER Todas as opções a seguir:
  • O app é um app do sistema no Automotive.
  • Apenas OEMs podem conceder essa função ao app.
  • O app oferece capacidade para um display de cluster automotivo (geralmente ao lado do volante) para que os usuários atendam ligações e acessem listas de contatos e registros de chamadas.
COMPANION_DEVICE_WATCH O app pode fazer solicitações para ser associado e gerenciar um dispositivo de relógio (usando a API fornecida pela classe CompanionDeviceManager). Quando o relógio e o app estão conectados pela interface fornecida pelo app, os usuários podem gerenciar o relógio pelo app, incluindo sincronizar contatos e agenda, e gerenciar notificações e ligações.
SYSTEM_AUTOMOTIVE_PROJECTION Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app permite que a tela do smartphone seja projetada no display do veículo. Ele permite que os motoristas acessem e controlem apps em smartphones Android, incluindo música, navegação, chamadas e pesquisa, usando mecanismos de entrada no veículo, como toque, controles no volante e comandos de voz.
SYSTEM_SHELL Todas as opções a seguir:
  • O app é um app do sistema que recebe o UID Process.SHELL_UID.
  • Apenas OEMs podem conceder essa função ao app.
  • O app oferece uma interface que funciona no nível da linha de comando para que os usuários possam interagir com o SO Android. Por exemplo, mostrar o conteúdo de uma pasta ou iniciar apps. Os comandos do shell podem ser executados programaticamente por apps (desde que as permissões necessárias tenham sido concedidas) ou pela ferramenta ADB.
SYSTEM_CONTACTS Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app oferece uma interface para os usuários gerenciarem os contatos (por exemplo, ver, compartilhar, adicionar, remover ou pesquisar um contato). O app atualiza o provedor de contatos quando o usuário atualiza os contatos no app. Os usuários também podem ligar, enviar e-mails ou mensagens de texto para os contatos no app.
SYSTEM_SPEECH_RECOGNIZER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app oferece um serviço que pode realizar o reconhecimento de fala.
  • Quando o app recebe streams de microfone ao vivo de outro app para reconhecimento de fala, ele atribui corretamente o uso do microfone ao app de chamada e atualiza as estatísticas de operação do app de acordo.
SYSTEM_WIFI_COEX_MANAGER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app tem um serviço que define dinamicamente uma lista de canais Wi-Fi que o dispositivo deve evitar usar devido à interferência celular.
SYSTEM_WELLBEING Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app precisa oferecer aos usuários a capacidade de reduzir distrações e fornecer estatísticas sobre como eles usam o dispositivo (por exemplo, o tempo de tela por semana).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app precisa mostrar notificações de alerta aos usuários em dispositivos de TV. O app também precisa mostrar as notificações ativas atuais quando a intent android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL é enviada (pela SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app precisa detectar dispositivos periféricos por perto. Ele precisa ter uma interface em que o usuário possa confirmar que um determinado dispositivo periférico deve ser associado e gerenciado por um app. Quando o usuário confirma, o app de gerenciamento concede ao app associado permissão para acessar o dispositivo periférico (por exemplo, nome, endereço, classe e estado de vinculação), e pode iniciar o processo de vinculação.
SYSTEM_DOCUMENT_MANAGER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app tem uma atividade que permite aos usuários acessar documentos e criar novos documentos no dispositivo.
  • O app precisa atender a todos os requisitos descritos na seção 2.2.3 do CDD do Android. Software no cabeçalho [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Todas as opções a seguir:
SYSTEM_UI Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app tem uma interface para os usuários interagirem com os smartphones. Por exemplo, a tela principal, a navegação, os apps recentes, as configurações rápidas, a barra de notificações, a tela de bloqueio e o controle de volume.
SYSTEM_TELEVISION_REMOTE_SERVICE Todas as opções a seguir:
  • O app é um app do sistema no Android TV.
  • Apenas OEMs podem conceder essa função ao app.
  • O app tem um serviço que pode se comunicar com o dispositivo HID do controle remoto da TV (por exemplo, via BLE), injetar eventos (por exemplo, cliques de botão) e enviar outros dados (por exemplo, stream de áudio de um microfone integrado ao controle remoto) para a plataforma.
SYSTEM_UI_INTELLIGENCE Todas as opções a seguir:
  • Ser um serviço pré-instalado que fornece, por meio de APIs de framework (APIs públicas ou do sistema), um processador inteligente no dispositivo para recursos de interface do usuário do sistema (por exemplo, prever e mostrar os próximos apps para os usuários).
  • O serviço precisa atender a todos os requisitos descritos na seção 9.8.6 Captura de conteúdo do CDD do Android.
  • O serviço não pode ter a permissão android.permission.INTERNET. Em vez disso, ele precisa acessar a Internet por APIs bem definidas em um projeto de código aberto.
  • O serviço não pode ser vinculado a apps, exceto os seguintes apps do sistema: Bluetooth, Contatos, Mídia, Telefonia, SystemUI e componentes que fornecem APIs da Internet. Cada vinculação permitida precisa ser configurada explicitamente pela configuração <allow-association> na configuração do sistema.
  • O serviço não pode compartilhar dados com apps, a menos que haja uma ação direta do usuário. Por exemplo, o usuário precisa pressionar um botão explicitamente sempre que os dados são compartilhados.
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Todas as opções a seguir:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, exceto que o serviço pré-instalado fornece um processador inteligente no dispositivo para áudio ambiente (por exemplo, reconhecendo músicas tocando perto do dispositivo).
SYSTEM_AUDIO_INTELLIGENCE Todas as opções a seguir:
  • Idênticas às condições de SYSTEM_UI_INTELLIGENCE, exceto que o serviço pré-instalado fornece um processador inteligente no dispositivo para áudio (por exemplo, legendagem de vídeos, podcasts, ligações telefônicas e de vídeo e mensagens de áudio).
SYSTEM_NOTIFICATION_INTELLIGENCE Todas as opções a seguir:
  • Idêntico às condições para SYSTEM_UI_INTELLIGENCE, exceto que o serviço pré-instalado fornece um processador inteligente no dispositivo para notificações (por exemplo, sugerindo respostas e ações para notificações de mensagens).
SYSTEM_TEXT_INTELLIGENCE Todas as opções a seguir:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, exceto que o serviço pré-instalado fornece um processador inteligente no dispositivo para texto (por exemplo, oferecendo tradução simultânea ou preenchimento automático).
SYSTEM_VISUAL_INTELLIGENCE Todas as opções a seguir:
  • Idêntico às condições para SYSTEM_UI_INTELLIGENCE, exceto que o serviço pré-instalado fornece um processador inteligente no dispositivo para recursos visuais que envolvem a análise de dados da câmera. Por exemplo, manter a tela do smartphone ativa enquanto o usuário olha para ela ou determinar a orientação ideal da tela com base na orientação do rosto do usuário pela câmera frontal do dispositivo.
COMPANION_DEVICE_APP_STREAMING Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • Casos de uso permitidos:
    • Streaming, transmissão ou espelhamento de apps que permitem streaming, transmissão ou espelhamento de um dispositivo Android, como um smartphone ou tablet, para um computador desktop ou laptop.
  • Ao estabelecer a conexão inicial do dispositivo A para o dispositivo B:
    • O pareamento PRECISA ser autorizado por um código único exibido no dispositivo de origem (A) e inserido no dispositivo conectado (B). Como alternativa, se os dois dispositivos tiverem pelo menos uma conta correspondente no Android AccountManager, o usuário PODE confirmar o pareamento inserindo a senha da conta no dispositivo conectado (B).
    • Os dois dispositivos precisam estar próximos 1 durante o pareamento.
  • Os dois dispositivos precisam estar próximos 1 durante o streaming.
  • O app pode criar e gerenciar canais de comunicação com dispositivos conectados para que eles possam trocar dados. O app e os dispositivos conectados precisam se autenticar (por exemplo, provando o conhecimento de chaves compartilhadas) para estabelecer esses canais de comunicação. Os canais de comunicação PRECISAM ter proteção de criptografia de ponta a ponta.
  • O app pode enviar notificações do dispositivo de origem (A) para o dispositivo conectado (B) para permitir que o usuário realize ações nas notificações no dispositivo conectado (B).
  • Transmitir os metadados necessários para o streaming de apps no dispositivo conectado (B), como a lista de apps disponíveis no dispositivo de origem (A).
  • Transmitir apps do dispositivo de origem (A) para o dispositivo conectado (B) depois que o usuário indicar a preferência por fazer isso com consentimento explícito (no dispositivo de origem (A) ou no dispositivo conectado (B)).
  • Reproduzir (injetar) eventos que acontecem em um app transmitido por streaming no dispositivo conectado (B) de volta no dispositivo de origem (A). Por exemplo, reproduzir um evento de toque no dispositivo conectado (B) nas mesmas coordenadas do dispositivo de origem (A) ou reproduzir um evento de entrada que ocorreu no dispositivo conectado (B) com a mesma semântica de entrada do dispositivo de origem (A).
  • O app pode substituir o fluxo de microfone do dispositivo de origem pelo fluxo de microfone de um dispositivo conectado enquanto um app transmitido está usando o microfone.
  • O app captura o áudio do dispositivo de origem (A) e transmite para o dispositivo conectado (B).
  • RECOMENDAMOS bloquear o acesso a apps de configurações e app stores no dispositivo conectado (B).
  • A partir do Android 16, é necessário impedir que o dispositivo conectado (B) faça capturas de tela e leitura de tela de conteúdo sensível, como janelas e superfícies seguras.
  • É NECESSÁRIO verificar a integridade do build do SO do dispositivo conectado (por exemplo, usando a declaração do dispositivo, como em VerifiedBootState).
  • Transmita apenas apps em que há uma única conta correspondente no registro de contas no dispositivo (por exemplo, a classe AccountManager no Android) em ambos os dispositivos. Caso contrário, a transmissão precisará ser autorizada com um código único mostrado no dispositivo de origem (A) e inserido no dispositivo conectado (B). Em dispositivos que oferecem suporte a vários usuários (e não a várias contas) com o mesmo isolamento de dados confiável, como no Android multiusuário, um usuário é contado como um dispositivo.
  • PRECISA interromper o streaming e desconectar do dispositivo conectado (B) imediatamente se a autenticação da conta no dispositivo conectado (B) expirar ou for revogada.
  • É NECESSÁRIO interromper a transmissão e desconectar o dispositivo conectado (B) após o tempo limite de inatividade do dispositivo conectado (B) em que o conteúdo da tela está visível. O MAY pode manter a tela do dispositivo conectado ativada em casos como o WakeLock, que mantém a tela do dispositivo Android ativada. Um tempo limite de inatividade precisa estar presente. Se o dispositivo conectado (B) não tiver um tempo limite de inatividade por si só, um tempo limite de inatividade de no máximo 5 minutos DEVE ser usado.
  • Se o dispositivo de origem (A) usar o fator de conhecimento da tela de bloqueio (LSKF, na sigla em inglês), quando a tela estiver bloqueada, o app NÃO DEVERÁ transmitir apps para um dispositivo conectado (B), a menos que ele tenha uma tela de bloqueio e esteja desbloqueado.
  • Se o dispositivo de origem (A) for gerenciado por um administrador, o app precisará respeitar as políticas definidas pelo administrador sobre como ativar ou desativar o streaming para dispositivos por perto (por exemplo, usando as configurações do DevicePolicyManager no Android).
  • PRECISA garantir que as telas remotas e todas as fontes de eventos de entrada remota pertençam ao mesmo dispositivo lógico (por exemplo, uma tela remota e um teclado conectado) do ponto de vista do usuário, e que os eventos sejam encaminhados de acordo.
  • O usuário PRECISA poder encerrar o streaming no dispositivo de origem (A), por exemplo, usando um botão em uma notificação persistente. Esse comportamento é controlado pela tela de bloqueio se o dispositivo de origem (A) tiver um bloqueio de tela definido. PRECISA mostrar essa ação persistente no dispositivo de origem (A), que está sempre visível e acima da dobra.
  • PRECISA mostrar uma ação no dispositivo de origem (A) quando o streaming estiver acontecendo em outro dispositivo, como um ícone na barra de status ou uma notificação persistente.
DEVICE_POLICY_MANAGEMENT Todas as opções a seguir:
  • Apenas OEMs podem conceder essa função ao app. Os apps não podem solicitar essa função, já que ela deve ser concedida ao nome do pacote definido pelo OEM quando o dispositivo é enviado.
  • O app precisa provisionar um perfil gerenciado (proprietário do perfil) ou um dispositivo gerenciado (proprietário do dispositivo), incluindo o download e a instalação do cliente de política de dispositivo adequado para ser o proprietário do dispositivo/perfil, se necessário.
  • O app pode, opcionalmente, atualizar dinamicamente recursos como strings e elementos gráficos usados para o gerenciamento de políticas do dispositivo.
  • O app pode ser um app de sistema pré-instalado ou baixado e instalado antes do provisionamento.
  • Para casos de provisionamento de proprietário do perfil, quando o app do titular da função é instalado em um determinado usuário do Android, ele precisa ser instalado em todos os perfis aplicáveis a esse usuário.
SYSTEM_APP_PROTECTION_SERVICE Todas as opções a seguir:
  • O app é um app do sistema.
  • A única finalidade do app é detectar apps potencialmente nocivos (que podem colocar usuários, dados de usuários ou dispositivos em risco, como trojans, phishing e spyware) ou software indesejado para dispositivos móveis.
  • O app precisa atender a todos os requisitos descritos na seção 9.8.6 do CDD do Android. Dados ambientais e no nível do SO.
  • O app não pode declarar a permissão normal android.permission.INTERNET. Em vez disso, ele precisa acessar a Internet por meio de APIs bem definidas em um projeto de código aberto.
  • O app não pode se vincular a outros apps, exceto os seguintes apps do sistema: Permission Controller e componentes que fornecem APIs de telefonia e Internet. Cada vinculação permitida precisa ser configurada explicitamente na configuração <allow-association> na configuração do sistema.
  • O app não pode compartilhar dados com outros apps, a menos que haja uma ação direta do usuário (por exemplo, o usuário pressiona explicitamente um botão sempre que os dados são compartilhados).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • O app precisa transferir os dados de agenda do smartphone iOS ou Android do usuário para o dispositivo Android Auto. O dispositivo Android Auto precisa armazenar esses dados de agenda no provedor de agenda.
  • O app precisa fornecer um componente de interface no smartphone que o usuário possa usar para ativar a sincronização da agenda e selecionar as agendas a serem sincronizadas. O app precisa fornecer um componente de interface no smartphone que o usuário possa usar para desativar a sincronização da agenda.
  • O app precisa funcionar sem conexão com a Internet. Por exemplo, usando conexões diretas com ou sem fio.
AUTOMOTIVE_NAVIGATION Todas as opções a seguir:
  • O app tem uma atividade que pode ser invocada por solicitações de intent implícita, mostrando a localização atual do usuário e os arredores.
  • O app tem uma atividade que pode ser invocada por solicitações de intent implícita e permite que o usuário navegue até uma geolocalização específica.
  • O app tem uma atividade que é iniciada no painel de instrumentos quando o app mantém o foco de navegação. A atividade precisa mostrar a localização atual do usuário, os arredores e permitir que ele navegue até uma geolocalização específica.
COMPANION_DEVICE_COMPUTER Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • Permitir que os usuários espelhem notificações e acessem fotos e mídia do smartphone em um computador conectado.
SYSTEM_SETTINGS_INTELLIGENCE Pelo menos um destes:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • Tem um serviço que oferece recursos de inteligência para o app Configurações, como sugestões e pesquisa.
NOTES Todas as opções a seguir:
COMPANION_DEVICE_GLASSES O app pode fazer solicitações para ser associado e gerenciar um dispositivo de óculos (usando a API fornecida pela classe CompanionDeviceManager). Quando o dispositivo de óculos e o app estão conectados usando a interface fornecida pelo CDM, os usuários podem gerenciar o dispositivo de óculos dando a ele acesso aos contatos e permissão para gerenciar notificações e ligações telefônicas.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Todas as opções a seguir:
  • O app é um app do sistema.
  • Apenas OEMs podem conceder essa função ao app.
  • Casos de uso permitidos:
    • Transmissão de apps de um dispositivo Android, como smartphone ou tablet, para um veículo.
    • Transmissão de apps de um dispositivo Android, como um smartphone ou tablet, para um dispositivo XR.
  • Ao estabelecer a conexão inicial do dispositivo A para o dispositivo B:
    • O pareamento PRECISA ser autorizado por um código único exibido no dispositivo de origem (A) e inserido no dispositivo conectado (B). Como alternativa, se os dois dispositivos tiverem pelo menos uma conta correspondente no Android AccountManager, o usuário PODE confirmar o pareamento inserindo a senha da conta no dispositivo conectado (B).
    • Os dois dispositivos precisam estar próximos 1 durante o pareamento.
  • Os dois dispositivos precisam estar próximos 1 durante o streaming.
  • O app pode criar e gerenciar canais de comunicação com dispositivos conectados para que eles possam trocar dados. O app e os dispositivos conectados precisam se autenticar (por exemplo, provando o conhecimento de chaves compartilhadas) para estabelecer esses canais de comunicação. Os canais de comunicação PRECISAM ter proteção de criptografia de ponta a ponta.
  • O app pode enviar notificações do dispositivo de origem (A) para o dispositivo conectado (B) para permitir que o usuário realize ações nas notificações no dispositivo conectado (B).
  • Transmitir os metadados necessários para o streaming de apps no dispositivo conectado (B), como a lista de apps disponíveis no dispositivo de origem (A).
  • Transmitir apps do dispositivo de origem (A) para o dispositivo conectado (B) depois que o usuário indicar a preferência por fazer isso com consentimento explícito (no dispositivo de origem (A) ou no dispositivo conectado (B)).
  • Reproduzir (injetar) eventos que acontecem em um app transmitido por streaming no dispositivo conectado (B) de volta no dispositivo de origem (A). Por exemplo, reproduzir um evento de toque no dispositivo conectado (B) nas mesmas coordenadas do dispositivo de origem (A) ou reproduzir um evento de entrada que ocorreu no dispositivo conectado (B) com a mesma semântica de entrada do dispositivo de origem (A).
  • O app pode substituir o fluxo de microfone do dispositivo de origem pelo fluxo de microfone de um dispositivo conectado enquanto um app transmitido está usando o microfone.
  • O app captura o áudio do dispositivo de origem (A) e transmite para o dispositivo conectado (B).
  • RECOMENDAMOS bloquear o acesso a apps de configurações e app stores no dispositivo conectado (B).
  • A partir do Android 25Q2, é necessário impedir a captura de tela e a leitura de tela de conteúdo sensível, como janelas e superfícies seguras, no dispositivo conectado (B).
  • É NECESSÁRIO verificar a integridade do build do SO do dispositivo conectado (por exemplo, usando a declaração do dispositivo, como em VerifiedBootState).
  • Transmita apenas apps em que há uma única conta correspondente no registro de contas no dispositivo (por exemplo, a classe AccountManager no Android) em ambos os dispositivos. Caso contrário, a transmissão precisará ser autorizada com um código único mostrado no dispositivo de origem (A) e inserido no dispositivo conectado (B). Em dispositivos que oferecem suporte a vários usuários (e não a várias contas) com o mesmo isolamento de dados confiável, como no Android multiusuário, um usuário é contado como um dispositivo.
  • PRECISA interromper o streaming e desconectar do dispositivo conectado (B) imediatamente se a autenticação da conta no dispositivo conectado (B) expirar ou for revogada.
  • É NECESSÁRIO interromper a transmissão e desconectar o dispositivo conectado (B) após o tempo limite de inatividade do dispositivo conectado (B) em que o conteúdo da tela está visível. O MAY pode manter a tela do dispositivo conectado ativada em casos como o WakeLock, que mantém a tela do dispositivo Android ativada. Um tempo limite de inatividade precisa estar presente. Se o dispositivo conectado (B) não tiver um tempo limite de inatividade por si só, um tempo limite de inatividade de no máximo 5 minutos DEVE ser usado.
  • Se o dispositivo de origem (A) usar o fator de conhecimento da tela de bloqueio (LSKF, na sigla em inglês), quando a tela estiver bloqueada, o app NÃO DEVERÁ transmitir apps para um dispositivo conectado (B), a menos que ele tenha uma tela de bloqueio e esteja desbloqueado.
  • Se o dispositivo de origem (A) for gerenciado por um administrador, o app precisará respeitar as políticas definidas pelo administrador sobre como ativar ou desativar o streaming para dispositivos por perto (por exemplo, usando as configurações do DevicePolicyManager no Android).
  • PRECISA garantir que as telas remotas e todas as fontes de eventos de entrada remota pertençam ao mesmo dispositivo lógico (por exemplo, uma tela remota e um teclado conectado) do ponto de vista do usuário, e que os eventos sejam encaminhados de acordo.
  • O usuário PRECISA poder encerrar o streaming no dispositivo de origem (A), por exemplo, usando um botão em uma notificação persistente. Esse comportamento é controlado pela tela de bloqueio se o dispositivo de origem (A) tiver um bloqueio de tela definido. PRECISA mostrar essa ação persistente no dispositivo de origem (A), que está sempre visível e acima da dobra.
  • PRECISA mostrar uma ação no dispositivo de origem (A) quando o streaming estiver acontecendo em outro dispositivo, como um ícone na barra de status ou uma notificação persistente.
WALLET Uma destas:
  • O app tem um serviço de APDU NFC que registra estaticamente pelo menos um AID na categoria PAGAMENTO.
  • O app implementa uma instância de QuickAccessWalletService.

1 A proximidade é definida quando os dois dispositivos estão dentro do alcance de Bluetooth ou Wi-Fi um do outro ou usando a mesma rede local.