ASSISTANT |
Pelo menos um dos seguintes:
- 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 restrito 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 seguintes opções:
- O app tem uma atividade que pode ser invocada por solicitações de intent
implícitas, que exibe 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 precisa 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 atual do dispositivo
às páginas da Web quando solicitado e o usuário aprova a
solicitação.
|
DIALER |
Todas as seguintes opções:
- O app tem uma atividade que pode ser invocada por solicitações de intent
implícitas, que fornece a interface do usuário durante a 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) ao
usuário e permitir que ele atenda ou recuse a chamada.
- O app oferece ao usuário uma forma de iniciar chamadas e conferir 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 apps por meio de solicitações de intent
implícitas, que podem enviar uma mensagem para um número de telefone.
- O app tem um serviço restrito pela
permissão
android.permission.SEND_RESPOND_VIA_MESSAGE e
invocável por intents implícitas, que podem enviar 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 restrito pela permissão
android.permission.BROADCAST_SMS e outro pela
permissão android.permission.BROADCAST_WAP_PUSH , que podem
detectar mensagens SMS e MMS de texto enviadas para o 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 navegar até essa tela pelo botão de emergência na
atividade de 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 restrito pela permissão android.permission.BIND_CALL_REDIRECTION_SERVICE , que o framework de telecomunicações pode vincular. O serviço recebe o
número de telefone de saída do framework de telecomunicações e executa 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.
- Cancele a chamada.
|
CALL_SCREENING |
O app tem um serviço restrito pela permissão android.permission.BIND_SCREENING_SERVICE ,
que executa duas funções:
- Bloqueio e triagem de chamadas:o serviço pode escolher quais
chamadas serão enviadas para o app discador do smartphone (e potencialmente
tocará, dependendo do modo Não perturbe ou do volume) e quais serão enviadas silenciosamente para
o correio de voz.
- Identificação de chamada:o serviço pode identificar e
mostrar informações sobre uma chamada por meio de uma interface do usuário.
|
SYSTEM_GALLERY |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente OEMs podem conceder essa função ao app.
- O app oferece uma interface para os usuários armazenarem, organizarem e exibirem
vídeos e imagens.
|
SYSTEM_AUTOMOTIVE_CLUSTER |
Todas as seguintes opções:
- O app é um
app do sistema
no Automotive.
- Somente OEMs podem conceder essa função ao app.
- O app oferece capacidade 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 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 a sincronização de contatos e da agenda,
além de gerenciar notificações e chamadas telefônicas.
|
SYSTEM_AUTOMOTIVE_PROJECTION |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente 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, como controles por toque,
volante e comandos de voz.
|
SYSTEM_SHELL |
Todas as seguintes opções:
- O app é um
app do sistema
que recebe o UID
Process.SHELL_UID .
- Somente 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 abrir apps. Os comandos do shell podem ser
executados programaticamente por apps (se as permissões necessárias tiverem sido
concedidas) ou pela ferramenta ADB.
|
SYSTEM_CONTACTS |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente OEMs podem conceder essa função ao app.
- O app oferece uma interface para que os usuários gerenciem 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 dele.
Os usuários também podem ligar, enviar e-mails ou mensagens de texto para os contatos
pelo app.
|
SYSTEM_SPEECH_RECOGNIZER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente 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 seguintes opções:
- O app é um
app do sistema
.
- Somente 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
.
- Somente OEMs podem conceder essa função ao app.
- O app precisa oferecer aos usuários a capacidade de reduzir a distração
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
.
- Somente OEMs podem conceder essa função ao app.
- O app precisa mostrar notificações de alerta para os 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
for enviada (do SystemUI).
|
SYSTEM_COMPANION_DEVICE_PROVIDER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente OEMs podem conceder essa função ao app.
- O app precisa detectar dispositivos periféricos nas proximidades. Ela
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 gerenciador concede à permissão do app associado para acessar o
dispositivo periférico (por exemplo, o nome, o endereço, a classe e o 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
.
- Somente OEMs podem conceder essa função ao app.
- O app tem uma atividade que permite aos usuários acessar documentos
existentes 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
.
- Somente 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.
- Somente OEMs podem conceder essa função ao app.
- O app tem um serviço que pode se comunicar com o dispositivo HID de controle remoto
da TV (por exemplo, por BLE), injetar eventos (por exemplo,
cliques de botão) e enviar outros dados (por exemplo, transmissão de áudio de um
microfone integrado ao controle remoto) para a plataforma.
|
SYSTEM_UI_INTELLIGENCE |
Todas as seguintes opções:
- É um serviço pré-instalado que fornece, por meio de APIs de framework
(públicas ou do sistema), um processador inteligente no dispositivo para recursos
da 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 meio de APIs bem definidas
em um projeto de código aberto.
- O serviço não pode ser vinculado a apps, exceto aos 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,
como pressionar um botão toda vez que os dados são compartilhados.
|
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE |
Todas as seguintes opções:
- Idênticas à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, 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
fornece um processador inteligente no dispositivo para áudio (por
exemplo, legendas em vídeos, podcasts, ligações, videochamadas e
mensagens de áudio).
|
SYSTEM_NOTIFICATION_INTELLIGENCE |
Todas as seguintes opções:
- Idênticas às condições de
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 de
SYSTEM_UI_INTELLIGENCE ,
exceto que o serviço pré-instalado
fornece um processador inteligente no dispositivo para texto (por
exemplo, fornecendo tradução em tempo real ou preenchimento automático).
|
SYSTEM_VISUAL_INTELLIGENCE |
Todas as seguintes opções:
- Idêntico às condições de
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 a observa 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 seguintes opções:
- O app é um
app do sistema
.
- Somente OEMs podem conceder essa função ao app.
- A partir do Android 15
Ao estabelecer a conexão inicial do dispositivo A com o dispositivo
B:
Ambos os dispositivos precisam ter pelo menos uma conta correspondente no
AccountManager , e o pareamento precisa ser
confirmado por um código único.
- O usuário precisa confirmar a senha da conta no dispositivo remoto
secundário ao parear os dispositivos ou
- O código único precisa ser mostrado no dispositivo de origem e
inserido no dispositivo conectado.
- Não é necessário ter um alcance durante o streaming.
Ou, o dispositivo A e o dispositivo B precisam estar dentro do alcance do Bluetooth um do outro
e o streaming precisa ser autorizado com um código único.
- O código único é mostrado no dispositivo de origem e inserido no
dispositivo conectado.
- Os dispositivos precisam ficar dentro do alcance do Bluetooth 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, provando o conhecimento de chaves compartilhadas) para estabelecer esses canais de comunicação.
Os canais de comunicação precisam ter proteção por criptografia.
- O app pode enviar notificações do dispositivo local para o dispositivo
conectado para que o usuário possa realizar ações com as notificações no
dispositivo conectado.
- Transmitir os metadados necessários para streaming de apps para o
dispositivo conectado, como a lista de apps disponíveis no
dispositivo local.
- Ter a capacidade de transmitir apps do dispositivo local para o dispositivo
conectado depois que o usuário indicar a preferência de fazer isso com
consentimento explícito (no smartphone ou no dispositivo conectado).
- Reproduzir (injetar) eventos que acontecem em um app
transmitido por streaming em um dispositivo conectado de volta no dispositivo local. Por exemplo,
reproduzir um evento de toque no tablet nas mesmas coordenadas do
smartphone.
- O app pode substituir o fluxo de microfone do dispositivo local por um
fluxo de microfone de um dispositivo conectado enquanto um app de streaming está usando
o microfone.
- O app captura o áudio do dispositivo e o transmite para o dispositivo
conectado.
- Precisa bloquear o fluxo da câmera do dispositivo local enquanto um app transmitido está
usando a câmera.
- É necessário verificar a integridade do build do SO do dispositivo conectado
(por exemplo, usando a declaração de integridade do dispositivo, como em
VerifiedBootState ).
- Transmita apenas apps em que haja apenas uma conta correspondente no
registro de contas no dispositivo (por
exemplo, a classe
AccountManager
no Android) em ambos os dispositivos.
Caso contrário, o streaming precisa ser autorizado com um código único mostrado no
dispositivo de origem e inserido no dispositivo conectado. No caso de
dispositivos com 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 é contabilizado como um dispositivo.
- O streaming precisa ser interrompido e a desconexão de um dispositivo conectado precisa ser feita imediatamente
se a autenticação da conta no dispositivo conectado expirar ou
for revogada.
- Desconecte as sessões de streaming de apps em andamento se o usuário não
interagir com o dispositivo conectado (por exemplo, se o teclado, a tela touchscreen
e o mouse estiverem inativos) por cinco minutos. Os apps de streaming de vídeo estão isentos
desse requisito.
- A partir do Android 15
É necessário desconectar todos os dispositivos virtuais após o tempo limite de inatividade do dispositivo
remoto em que o conteúdo da tela está visível. Pode manter a tela
do dispositivo remoto ligada para casos como WakeLock, que mantém a tela
do dispositivo Android ligada. Um tempo limite de inatividade precisa estar presente. Se o dispositivo remoto
não tiver um tempo limite de inatividade, use um tempo limite de inatividade de
no máximo 5 minutos.
- Se o dispositivo de origem usar o fator de conhecimento da tela de bloqueio (LSKF, na sigla em inglês), quando a
tela estiver bloqueada, o app não poderá transmitir apps para um dispositivo
conectado, a menos que ele tenha uma tela de bloqueio e esteja desbloqueado.
- Se o dispositivo for gerenciado por um administrador, o app precisa respeitar
as políticas definidas pelo administrador sobre ativar ou desativar o streaming de apps para
dispositivos por perto (por exemplo, usando
as configurações
DevicePolicyManager no Android).
- É necessário garantir que a tela remota 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 roteados adequadamente.
- O usuário precisa poder encerrar o streaming no dispositivo local,
por exemplo, usando um botão em uma notificação persistente. Esse
comportamento é bloqueado pela tela de bloqueio, se o smartphone tiver um bloqueio de tela definido.
A partir do Android 15, é necessário mostrar
essa affordance persistente no dispositivo local, que é sempre visível
e acima da dobra.
- Precisa mostrar uma capacidade no dispositivo de origem 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:
- Somente OEMs podem conceder essa função ao app. Os apps não podem solicitar
essa função, já que ela é concedida automaticamente 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íticas do dispositivo apropriado para ser o proprietário do dispositivo/perfil, se
necessário.
- O app pode atualizar dinamicamente
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 de proprietários de perfil, quando o app do detentor de função é
instalado em um determinado usuário do Android,
ele precisa ser instalado em todos os perfis
aplicáveis para esse usuário.
|
SYSTEM_APP_PROTECTION_SERVICE |
Todas as seguintes opções:
- O app é um
app do sistema
.
- O único objetivo do app é detectar apps potencialmente nocivos
(apps que podem colocar usuários, dados de usuários ou dispositivos em risco, como
apps de phishing, spyware e trojans) 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 do SO e ambientais.
- 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 ser vinculado a apps, exceto aos seguintes apps do sistema:
Permission Controller e componentes que fornecem APIs de telefonia e
Internet. Cada vinculação permitida precisa ser configurada explicitamente usando a
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 toda vez que os
dados são compartilhados).
|
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente OEMs podem conceder essa função ao app.
- O app precisa transferir dados de calendário do smartphone iOS ou Android
do usuário para o dispositivo Android Auto. O dispositivo Android Auto precisa armazenar
esses dados no
provedor de calendário.
- O app precisa fornecer um componente de interface no smartphone que o usuário possa usar para
ativar a sincronização de calendários e selecionar os calendários a serem sincronizados. O app precisa
fornecer um componente de interface no smartphone que o usuário possa usar para desativar
a sincronização de calendário.
- 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ícitas, que mostram o local atual e os arredores do usuário.
- O app tem uma atividade que pode ser invocada por apps por meio de solicitações de intent
implícitas, permitindo que o usuário navegue até uma geolocalização especificada.
- O app tem uma atividade que é iniciada no cluster de instrumentos quando o
app mantém o foco de navegação.
A atividade precisa mostrar o local atual do usuário, o entorno dele
e permitir que ele navegue até uma geolocalização especificada.
|
COMPANION_DEVICE_COMPUTER |
Todas as seguintes opções:
- O app é um
app do sistema
.
- Somente 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 dos seguintes:
- O app é um
app do sistema
.
- Somente 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 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
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
.
- Somente OEMs podem conceder essa função ao app.
- A partir do Android 15
Ao estabelecer a conexão inicial do dispositivo A com o dispositivo
B:
Ambos os dispositivos precisam ter pelo menos uma conta correspondente no
AccountManager , e o pareamento precisa ser
confirmado por um código único.
- O usuário precisa confirmar a senha da conta no dispositivo remoto
secundário ao parear os dispositivos ou
- O código único precisa ser mostrado no dispositivo de origem e
inserido no dispositivo conectado.
- Não é necessário ter um alcance durante o streaming.
Ou, o dispositivo A e o dispositivo B precisam estar dentro do alcance do Bluetooth um do outro
e o streaming precisa ser autorizado com um código único.
- O código único é mostrado no dispositivo de origem e inserido no
dispositivo conectado.
- Os dispositivos precisam ficar dentro do alcance do Bluetooth 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 um ao outro (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 local para o dispositivo
conectado para que o usuário possa realizar ações com as notificações no
dispositivo conectado.
- Transmitir os metadados necessários para streaming de apps para o
dispositivo conectado, como a lista de apps disponíveis no
dispositivo local.
- Ter a capacidade de transmitir apps do dispositivo local para o dispositivo
conectado depois que o usuário indicar a preferência de fazer isso com
consentimento explícito (no smartphone ou no dispositivo conectado).
- Reproduzir (injetar) eventos que acontecem em um app
transmitido por streaming em um dispositivo conectado de volta no dispositivo local. Por exemplo,
reproduzir um evento de toque no tablet nas mesmas coordenadas que no
smartphone ou reproduzir um evento de entrada que ocorreu no dispositivo de óculos
com a mesma semântica de entrada que no smartphone.
- O app pode substituir o fluxo de microfone do dispositivo local por um
fluxo de microfone de um dispositivo conectado enquanto um app de streaming está usando
o microfone.
- O app captura o áudio do dispositivo e o transmite para o dispositivo
conectado.
- É necessário verificar a integridade do build do SO do dispositivo conectado
(por exemplo, usando a declaração de integridade do dispositivo, como em
VerifiedBootState ).
- Transmita apenas apps em que haja apenas uma conta correspondente no registro de contas no dispositivo (por
exemplo, a classe
AccountManager
no Android) em ambos os dispositivos.
Caso contrário, o streaming precisa ser autorizado com um código único mostrado no
dispositivo de origem e inserido no dispositivo conectado. No caso de
dispositivos com 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 é contabilizado como um dispositivo.
- O streaming precisa ser interrompido e a desconexão de um dispositivo conectado precisa ser feita imediatamente
se a autenticação da conta no dispositivo conectado expirar ou
for revogada.
- Se o dispositivo de origem usar o LSKF, quando a
tela estiver bloqueada, o app não poderá transmitir apps para um dispositivo
conectado, a menos que esse dispositivo tenha uma tela de bloqueio e esteja desbloqueado.
- Se o dispositivo for gerenciado por um administrador, o app precisará respeitar
as políticas definidas pelo administrador sobre ativar ou desativar o streaming para
dispositivos próximos (por exemplo, usando
as configurações de
DevicePolicyManager no Android).
- É necessário garantir que a tela remota 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 roteados
de acordo.
- O usuário precisa poder encerrar o streaming no dispositivo local,
por exemplo, usando um botão em uma notificação persistente. Esse
comportamento é limitado pela tela de bloqueio, se o smartphone tiver um bloqueio
definido.
- Precisa mostrar uma capacidade no dispositivo de origem 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 .
|