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 aplicativo 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 interativas de voz.
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 seguintes opções:
- O app tem uma atividade que pode ser invocada por outros apps usando solicitações de intent
implícitas, que mostram 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
às páginas da Web quando solicitado e se o usuário aprovar a
solicitação.
|
DIALER |
Todas as seguintes opções:
- O app tem uma atividade que pode ser invocada por solicitações de intent implícita, que fornece a interface do usuário em chamada enquanto o dispositivo está
em uma chamada.
- 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) para o
usuário e permitir que ele atenda ou recuse a chamada.
- O app oferece ao usuário uma maneira de iniciar chamadas e ver um
histórico de chamadas no dispositivo.
|
SMS |
Todas as seguintes opções:
- O app atende a todos os
requisitos para apps de SMS.
- O app tem uma atividade que pode ser invocada por outros apps usando solicitações de intent
implícitas, que podem enviar 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
invocável por intents implícitas, 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 seguintes opções:
- 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 de emergência na
atividade do 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 do app, 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, que pode ser vinculada ao framework de telecomunicações. O serviço recebe o
número de telefone de saída do framework de telecomunicações e realiza uma das
seguintes ações:
- Permitir que a chamada seja feita como está.
- Mude o número de saída para encaminhar por um número de proxy.
- Cancelar a ligação.
|
CALL_SCREENING |
O app tem um serviço controlado pela permissão android.permission.BIND_SCREENING_SERVICE,
que executa duas funções:
- Bloqueio e filtragem de chamadas:o serviço pode escolher quais
chamadas devem ser enviadas para o app de discagem no smartphone (e, possivelmente,
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.
|
SUPERVISION |
Todas as seguintes opções:
- O app é um
app do sistema
ou um serviço pré-instalado.
- Apenas OEMs podem conceder essa função ao app.
- O único propósito do app é permitir que os pais ou responsáveis legais do usuário gerenciem o dispositivo.
- O app precisa fornecer um componente de interface no dispositivo que o usuário autorizado
possa usar para desativar a função de supervisão.
|
SYSTEM_GALLERY |
Todas as seguintes opções:
- 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
vídeos e imagens.
|
SYSTEM_AUTOMOTIVE_CLUSTER |
Todas as seguintes opções:
- O app é um
app do sistema
no Automotive.
- Apenas OEMs podem conceder essa função ao app.
- O app oferece recursos para uma tela de cluster automotivo
(geralmente ao lado do volante) para que os usuários atendam chamadas
telefônicas e acessem listas de contatos e registros de chamadas.
|
COMPANION_DEVICE_WATCH |
O app pode fazer solicitações para ser associado a um relógio e gerenciá-lo
(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 a sincronização de contatos e agenda,
além de gerenciar notificações e ligações.
|
SYSTEM_AUTOMOTIVE_PROJECTION |
Todas as seguintes opções:
- 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 na tela do
veículo. Ele permite que os motoristas acessem e controlem apps em smartphones
Android, incluindo música, navegação, ligações e pesquisa,
usando mecanismos de entrada no veículo, incluindo toque, controles
no volante e comandos de voz.
|
SYSTEM_SHELL |
Todos os seguintes:
- 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, exibir
o conteúdo de uma pasta ou iniciar apps. Os comandos do shell podem ser
executados de forma programática por apps (desde que as permissões necessárias tenham sido
concedidas) ou pela ferramenta ADB.
|
SYSTEM_CONTACTS |
Todas as seguintes opções:
- 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,
visualizar, 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 seguintes opções:
- 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 transmissões ao vivo do microfone de outro app para
reconhecimento de fala, ele atribui corretamente o uso do microfone ao
app de ligação e atualiza as estatísticas de operação do app
de acordo.
|
SYSTEM_WIFI_COEX_MANAGER |
Todas as seguintes opções:
- 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 seguintes opções:
- 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 as 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 seguintes opções:
- 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 (da SystemUI).
|
SYSTEM_COMPANION_DEVICE_PROVIDER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Apenas OEMs podem conceder essa função ao app.
- O app precisa ser capaz de detectar dispositivos periféricos nas proximidades. Ele
precisa ter uma interface em que o usuário possa confirmar que um determinado dispositivo periférico
precisa 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 seguintes opções:
- 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 atuais
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 título
[3.2.3.1/H-0-1].
|
SYSTEM_ACTIVITY_RECOGNIZER |
Todas as seguintes opções:
|
SYSTEM_UI |
Todas as seguintes opções:
- 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 do smartphone, 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 seguintes opções:
- 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, por BLE), injetar eventos (por exemplo,
cliques em botões) e enviar outros dados (por exemplo, stream de áudio de um
microfone integrado ao controle remoto) para a plataforma.
|
SYSTEM_UI_INTELLIGENCE |
Todas as seguintes opções:
- 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 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 se vincular a apps, exceto os seguintes apps do sistema:
Bluetooth, Contatos, Mídia, Telefonia, SystemUI e componentes
que fornecem APIs de 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 pressiona explicitamente um botão sempre que os dados são compartilhados).
|
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE |
Todas as seguintes opções:
- Idênticas às condições do
SYSTEM_UI_INTELLIGENCE,
exceto que o serviço pré-instalado
oferece um processador inteligente no dispositivo para áudio ambiente,
por exemplo, para reconhecer músicas tocando perto do dispositivo.
|
SYSTEM_AUDIO_INTELLIGENCE |
Todas as seguintes opções:
- Idênticas às condições para
SYSTEM_UI_INTELLIGENCE,
exceto que o serviço pré-instalado
oferece um processador inteligente no dispositivo para áudio (por
exemplo, legendas de vídeos, podcasts, ligações, videochamadas e
mensagens de áudio).
|
SYSTEM_NOTIFICATION_INTELLIGENCE |
Todas as seguintes opções:
- Idênticas à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 seguintes opções:
- Idênticas às condições para
SYSTEM_UI_INTELLIGENCE,
exceto que o serviço pré-instalado
fornece um processador inteligente no dispositivo para texto (por
exemplo, fornecendo tradução instantânea ou preenchimento automático).
|
SYSTEM_VISUAL_INTELLIGENCE |
Todas as seguintes opções:
- Idênticas à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 está olhando para ela ou determinar a orientação
ideal da tela com base na orientação do rosto do usuário na
câmera frontal do dispositivo.
|
COMPANION_DEVICE_APP_STREAMING |
Todas as seguintes opções:
- 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 com 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 PODERÁ confirmar o pareamento
inserindo a senha da conta no dispositivo conectado (B).
- Os dois dispositivos precisam estar próximos
1 um do outro durante
o pareamento.
- Os dois dispositivos precisam estar próximos
1 um do outro 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, comprovando 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 que o usuário possa realizar ações nas notificações no
dispositivo conectado (B).
- Ser capaz de transmitir os metadados necessários para o espelhamento de apps ao
dispositivo conectado (B), como a lista de apps disponíveis no
dispositivo de origem (A).
- Ser capaz de transmitir apps do dispositivo de origem (A) para o dispositivo
conectado (B) depois que o usuário indicar a preferência de fazer isso com
consentimento explícito (no dispositivo de origem (A) ou no dispositivo
conectado (B)).
- Ser capaz de reproduzir (injetar) eventos que acontecem em um app
transmitido no dispositivo conectado (B) de volta no dispositivo de origem (A). Por
exemplo, repetir um evento de toque no dispositivo conectado (B) nas mesmas
coordenadas do dispositivo de origem (A) ou repetir 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 stream do microfone do dispositivo de origem pelo stream do microfone de um dispositivo conectado enquanto um app transmitido estiver usando o microfone.
- O app captura o áudio do dispositivo de origem (A) e o transmite para
o dispositivo conectado (B).
- É RECOMENDADO bloquear o acesso a apps de configurações e app stores no dispositivo conectado (B).
- A partir do Android 16, a captura de tela
e a leitura de tela de conteúdo sensível, como
janelas e superfícies seguras, PRECISAM ser impedidas no dispositivo
conectado (B).
- PRECISA verificar a integridade do build do SO do dispositivo conectado
(por exemplo, usando o atestado do dispositivo, como em
VerifiedBootState).
- Só faça streaming de apps em que há apenas uma conta correspondente no
registro de contas no dispositivo (por exemplo, a classe
AccountManager no Android) em ambos os dispositivos. Se
não for o caso, o streaming PRECISA ser autorizado com um código único
mostrado no dispositivo de origem (A) e inserido no dispositivo conectado (B).
No caso de dispositivos que aceitam vários usuários (e não
várias contas) com o mesmo isolamento de dados confiável, como no
multiusuário do Android, um usuário
conta como um dispositivo.
- PRECISA interromper o streaming e se desconectar do dispositivo conectado (B)
imediatamente se a autenticação da conta no dispositivo conectado
(B) expirar ou for revogada.
- PRECISA interromper o streaming e se desconectar do dispositivo conectado (B)
quando o tempo limite de inatividade do dispositivo conectado (B) em que o conteúdo
da tela está visível for atingido. PODEM manter a tela do dispositivo conectado ligada em casos
como WakeLock, que mantêm a tela do dispositivo Android ligada. É obrigatório
ter um tempo limite de inatividade. Se o dispositivo conectado (B) não tiver um
tempo limite de inatividade, um tempo limite de inatividade de no máximo 5 minutos PRECISA
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 PODE fazer streaming de apps para um dispositivo
conectado (B), a menos que o dispositivo conectado (B) tenha uma tela de bloqueio e esteja
desbloqueado.
- Se o dispositivo de origem (A) for gerenciado por um administrador, o app PRECISA respeitar
as políticas definidas pelo administrador sobre ativar ou desativar o streaming para
dispositivos por perto (por exemplo, usando as
configurações de
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) da perspectiva 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 affordance persistente no dispositivo de origem (A) que está sempre visível e acima da dobra.
- PRECISA mostrar uma funcionalidade 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 seguintes opções:
- Apenas OEMs podem conceder essa função ao app. Os apps não podem solicitar
essa função, porque ela precisa ser concedida de forma imediata ao nome do pacote
definido pelo OEM quando o dispositivo é enviado.
- O app precisa ser capaz de 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 do dispositivo apropriado para ser o proprietário do dispositivo/perfil, se
necessário.
- O app pode, opcionalmente, atualizar de forma dinâmica
recursos,
como strings e drawables usados para o gerenciamento de políticas do dispositivo.
- O app pode ser um app do sistema pré-instalado ou ser baixado e
instalado antes do provisionamento.
- Para casos de provisionamento do proprietário do perfil, quando o app detentor da função é
instalado em um determinado usuário do Android,
ele precisa ser instalado em todos os
perfis
aplicáveis desse usuário.
|
SYSTEM_APP_PROTECTION_SERVICE |
Todas as seguintes opções:
- O app é um
app do sistema
.
- A única finalidade do app é detectar apps potencialmente prejudiciais
(apps que podem colocar usuários, dados do usuário ou dispositivos em risco, como
cavalos de troia, 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 pela
configuração
<allow-association> na configuração
do sistema.
- O app não pode compartilhar dados pessoais compartilhados 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 pessoais compartilhados são compartilhados).
|
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Apenas OEMs podem conceder essa função ao app.
- O app precisa transferir os dados da agenda do smartphone iOS ou Android
do usuário para o dispositivo Android Auto. O dispositivo Android Auto precisa armazenar
esses dados 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 de agendas e selecionar as agendas que serão 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 uma conexão de Internet. Por exemplo,
usando conexões diretas com ou sem fio.
|
AUTOMOTIVE_NAVIGATION |
Todas as seguintes opções:
- O app tem uma atividade que pode ser invocada por solicitações de intent implícita, que mostra 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, permitindo que o usuário navegue até uma localização geográfica especificada.
- O app tem uma atividade que é iniciada no painel de instrumentos quando o
app tem 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 região geográfica específica.
|
COMPANION_DEVICE_COMPUTER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Apenas OEMs podem conceder essa função ao app.
- Permita 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 seguintes opções:
|
COMPANION_DEVICE_GLASSES |
O app pode fazer solicitações para ser associado a um dispositivo de óculos e gerenciá-lo (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 concedendo a ele
acesso aos contatos e permissão para gerenciar notificações e chamadas
telefônicas.
|
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Apenas OEMs podem conceder essa função ao app.
- Casos de uso permitidos:
- Espelhamento de app de um dispositivo Android, como um smartphone
ou tablet, para um veículo.
- Espelhamento de apps de um dispositivo Android, como um smartphone
ou tablet, para um dispositivo XR.
- Ao estabelecer a conexão inicial do dispositivo A com 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 PODERÁ confirmar o pareamento
inserindo a senha da conta no dispositivo conectado (B).
- Os dois dispositivos precisam estar próximos
1 um do outro durante
o pareamento.
- Os dois dispositivos precisam estar próximos
1 um do outro 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, comprovando 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 que o usuário possa realizar ações nas notificações no
dispositivo conectado (B).
- Ser capaz de transmitir os metadados necessários para o espelhamento de apps ao
dispositivo conectado (B), como a lista de apps disponíveis no
dispositivo de origem (A).
- Ser capaz de transmitir apps do dispositivo de origem (A) para o dispositivo
conectado (B) depois que o usuário indicar a preferência de fazer isso com
consentimento explícito (no dispositivo de origem (A) ou no dispositivo
conectado (B)).
- Ser capaz de reproduzir (injetar) eventos que acontecem em um app
transmitido no dispositivo conectado (B) de volta no dispositivo de origem (A). Por
exemplo, repetir um evento de toque no dispositivo conectado (B) nas mesmas
coordenadas do dispositivo de origem (A) ou repetir 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 stream do microfone do dispositivo de origem pelo stream do microfone de um dispositivo conectado enquanto um app transmitido estiver usando o microfone.
- O app captura o áudio do dispositivo de origem (A) e o transmite para
o dispositivo conectado (B).
- É RECOMENDADO bloquear o acesso a apps de configurações e app stores no dispositivo conectado (B).
- A partir do Android 16, a captura de tela
e a leitura de tela de conteúdo sensível, como
janelas e superfícies seguras, PRECISAM ser impedidas no dispositivo
conectado (B).
- PRECISA verificar a integridade do build do SO do dispositivo conectado
(por exemplo, usando o atestado do dispositivo, como em
VerifiedBootState).
- Só faça streaming de apps em que há apenas uma conta correspondente no
registro de contas no dispositivo (por exemplo, a classe
AccountManager no Android) em ambos os dispositivos. Se
não for o caso, o streaming PRECISA ser autorizado com um código único
mostrado no dispositivo de origem (A) e inserido no dispositivo conectado (B).
No caso de dispositivos que aceitam vários usuários (e não
várias contas) com o mesmo isolamento de dados confiável, como no
multiusuário do Android, um usuário
conta como um dispositivo.
- PRECISA interromper o streaming e se desconectar do dispositivo conectado (B)
imediatamente se a autenticação da conta no dispositivo conectado
(B) expirar ou for revogada.
- PRECISA interromper o streaming e se desconectar do dispositivo conectado (B)
quando o tempo limite de inatividade do dispositivo conectado (B) em que o conteúdo
da tela está visível for atingido. PODEM manter a tela do dispositivo conectado ligada em casos
como WakeLock, que mantêm a tela do dispositivo Android ligada. É obrigatório
ter um tempo limite de inatividade. Se o dispositivo conectado (B) não tiver um
tempo limite de inatividade, um tempo limite de inatividade de no máximo 5 minutos PRECISA
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 PODE fazer streaming de apps para um dispositivo
conectado (B), a menos que o dispositivo conectado (B) tenha uma tela de bloqueio e esteja
desbloqueado.
- Se o dispositivo de origem (A) for gerenciado por um administrador, o app PRECISA respeitar
as políticas definidas pelo administrador sobre ativar ou desativar o streaming para
dispositivos por perto (por exemplo, usando as
configurações de
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) da perspectiva 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 affordance persistente no dispositivo de origem (A) que está sempre visível e acima da dobra.
- PRECISA mostrar uma funcionalidade 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 APDU de NFC que registra estaticamente pelo menos um
AID na categoria PAYMENT.
- O app implementa uma instância de
QuickAccessWalletService.
|