Funções do Android

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 pela API Android, especificamente pela invocação de métodos na RoleManager .

Consulte a lista a seguir para conhecer as funções disponíveis e os requisitos correspondentes:

Função Requisitos
ASSISTANT Pelo menos um dos seguintes:
  • O app tem uma atividade que realiza ações de assistência, considerando informações sobre o contexto do usuário quando ele solicitou a assistência Por exemplo, o nome do pacote do app atual em primeiro plano e o informações contextuais).
  • O aplicativo tem um serviço de interação por voz sempre ativado, controlado pela android.permission.BIND_VOICE_INTERACTION, que pode realizar reconhecimento de voz e organizar sessões de interação por voz ativa. Além disso, o app tem uma flag explícita indicando que o serviço está capaz de lidar com a ação de assistência.
BROWSER Todas:
  • O app tem uma atividade que pode invocar com uma intent implícita , 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 o usuário está visualizando uma página da Web e clica em um endereço http:// no texto, o aplicativo precisa ser capaz de exibir o conteúdo correspondentes ao link selecionado sem intervenção adicional do usuário.
  • O app precisa informar a geolocalização atual do dispositivo. informações às páginas da Web quando elas são solicitadas e o usuário aprova a solicitação.
DIALER Todas:
  • O app tem uma atividade que pode invocar com uma intent implícita solicitações, que fornece a interface do usuário em chamada enquanto o dispositivo está em uma chamada.
  • O app pode processar intents de chamadas recebidas e exibir as informações relacionadas à chamada (por exemplo, o número de telefone do autor da chamada) para o e deixe que ele atenda ou recuse a chamada.
  • O aplicativo oferece ao usuário um meio para iniciar chamadas e ver uma histórico de ligações no dispositivo.
SMS Todas:
  • O app atende a todos os requisitos para apps de SMS.
  • O app tem uma atividade que pode invocar com uma intent implícita solicitações, que podem enviar uma mensagem para um número de telefone.
  • O app tem um serviço controlado pela a permissão android.permission.SEND_RESPOND_VIA_MESSAGE e invocável por intents implícitas, que podem entregar mensagens recebidas de no aplicativo Telefone quando o usuário opta por responder por mensagem durante uma receber uma ligação. O aplicativo pode entregar mensagens por meio de suas próprias mensagens sistema.
  • O app tem dois broadcast receivers, um controlado pela permissão android.permission.BROADCAST_SMS e outro controlado por a permissão android.permission.BROADCAST_WAP_PUSH, que pode ouvir mensagens SMS e MMS de texto enviadas para o dispositivo, respectivamente. O app é responsável por gravar as mensagens no provedor de SMS e notificando os usuários.
EMERGENCY Todas:
  • O aplicativo é um app do sistema do Google.
  • O app tem uma atividade que apresenta as informações de emergência do usuário. Qualquer pessoa pode navegar até essa tela usando o botão "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 deve mostrar ícones do app, widgets e suporte navegação baseada 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 android.permission.BIND_CALL_REDIRECTION_SERVICE. permissão à qual o framework de telecomunicações pode se vincular. O serviço recebe número de telefone de saída da estrutura de telecomunicações e realiza uma das seguintes ações:
  • Permitir que a chamada seja feita no estado em que se encontra.
  • Mude o número de saída para rotear com 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 filtro de ligações:o serviço pode escolher quais chamadas devem ser enviadas para o aplicativo discador do telefone (e possivelmente toque, com o Não perturbe ou volume) e que devem ser enviadas silenciosamente para no correio de voz.
  • Identificação de chamadas: o serviço pode identificar e exibir informações sobre uma chamada em uma interface do usuário.
SYSTEM_GALLERY Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O aplicativo fornece uma interface de usuário para os usuários armazenarem, organizarem e exibirem seus vídeos e imagens.
SYSTEM_AUTOMOTIVE_CLUSTER Todas:
  • O aplicativo é um app do sistema no Automotive.
  • Somente OEMs podem conceder essa função ao app.
  • O app oferece recursos para a tela de um cluster automotivo. (perto do volante) para os usuários atenderem o telefone chamadas e acessar listas de contatos e registros de chamadas.
COMPANION_DEVICE_WATCH O app pode fazer solicitações de associação e de gerenciamento de um dispositivo de relógio. (usando a API fornecida pela CompanionDeviceManager). Quando o relógio e o aplicativo estiver conectado por meio da interface fornecida pelo aplicativo, os usuários podem gerenciar o relógio pelo app, incluindo a sincronização de contatos e agenda, e gerenciar notificações e chamadas telefônicas.
SYSTEM_AUTOMOTIVE_PROJECTION Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O app permite projetar a tela do smartphone no veículo exibição. Permite que motoristas acessem e controlem apps no Android telefones, incluindo música, navegação, chamadas telefônicas e pesquisa, usando mecanismos de entrada no veículo, incluindo toque, volante controles e comandos de voz.
SYSTEM_SHELL Todas:
  • O aplicativo é um app do sistema que recebe UID do 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, exibir o conteúdo de uma pasta ou abrir aplicativos. Os comandos do shell podem ser executada programaticamente por aplicativos (com as permissões necessárias tenham sido ou da ferramenta ADB.
SYSTEM_CONTACTS Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O app oferece uma interface para os usuários gerenciarem contatos (por exemplo, visualizar, compartilhar, adicionar, remover ou pesquisar um contato). O app atualiza Provedor de contatos quando o usuário atualiza os contatos pelo app. Os usuários também podem ligar, enviar e-mails ou mensagens de texto para os contatos do o app.
SYSTEM_SPEECH_RECOGNIZER Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O aplicativo oferece um serviço que realiza reconhecimento de fala.
  • Quando o app recebe transmissões de microfone ao vivo de outro app por reconhecimento de fala, ele atribui corretamente o uso do microfone ao aplicativo de chamada e atualiza as estatísticas de operação do aplicativo de maneira adequada.
SYSTEM_WIFI_COEX_MANAGER Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O aplicativo tem um serviço que define dinamicamente uma lista de canais Wi-Fi que o dispositivo deve evitar usar devido à interferência da rede celular.
SYSTEM_WELLBEING Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O app precisa oferecer aos usuários um recurso para reduzir a distração além de fornecer estatísticas sobre o uso do dispositivo (por exemplo, por exemplo, o tempo de tela por semana).
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O app precisa mostrar notificações de alerta aos usuários em dispositivos de TV. O aplicativo também deve mostrar as notificações atuais ativas quando android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL intent enviada (da SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Todas:
  • O aplicativo é um app do sistema do Google.
  • 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 devem ser associados e gerenciados por um app. Quando o usuário confirma, o aplicativo de gerenciamento concede ao aplicativo associado permissão para acessar o dispositivo periférico (por exemplo, nome, endereço, classe e vinculação) estado) e pode iniciar o processo de ligação.
SYSTEM_DOCUMENT_MANAGER Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente 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 no CDD do Android. seção 2.2.3. software abaixo do título [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Todas:
  • O aplicativo é um app do sistema do Google.
  • O app tem um serviço controlado por android.permission.ACTIVITY_RECOGNITION, que pode realizar reconhecimento de atividade (por exemplo, corrida ou ciclismo).
SYSTEM_UI Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O app tem uma interface para os usuários interagirem com o smartphone. Para por exemplo, a tela principal do celular, navegação, aplicativos recentes, configurações rápidas, barra de notificações, tela de bloqueio, controle de volume.
SYSTEM_TELEVISION_REMOTE_SERVICE Todas:
  • O aplicativo é 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 controle remoto da TV controlar o dispositivo HID (por exemplo, sobre BLE), injetar eventos (por exemplo, cliques no botão) e enviar outros dados (por exemplo, o stream de áudio de um microfone integrado ao controle remoto) na plataforma.
SYSTEM_UI_INTELLIGENCE Todas:
  • 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 (por exemplo, prever e mostrar os próximos apps para usuários).
  • O serviço precisa atender a todos os requisitos descritos no CDD do Android. seção 9.8.6 Captura de Conteúdo.
  • O serviço não pode ter a propriedade android.permission.INTERNET permissão. Em vez disso, ele precisa acessar a Internet por meio de configurações bem definidas APIs em um projeto de código aberto.
  • O serviço não pode ser vinculado a apps, exceto para os seguintes apps do sistema: Bluetooth, Contatos, Mídia, Telefonia, SystemUI e componentes fornecendo APIs da Internet. Cada vinculação permitida precisa ser configurada explicitamente usando a configuração <allow-association> na configuração do sistema.
  • O serviço não pode compartilhar dados com apps, a menos que haja um usuário direto ação (por exemplo, o usuário pressiona explicitamente um botão toda vez os dados são compartilhados).
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Todas:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, com a diferença de que oferece um processador inteligente no dispositivo para som ambiente Por exemplo, reconhecer músicas que estão tocando perto do dispositivo.
SYSTEM_AUDIO_INTELLIGENCE Todas:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, com a diferença de que oferece um processador inteligente no dispositivo para áudio (por exemplo, legendagem de vídeos, podcasts, ligações, videochamadas e mensagens de áudio).
SYSTEM_NOTIFICATION_INTELLIGENCE Todas:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, com a diferença de que serviço fornece um processador inteligente no dispositivo para notificações Por exemplo, sugerir respostas e ações para notificações de mensagens.
SYSTEM_TEXT_INTELLIGENCE Todas:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, com a diferença de que serviço fornece um processador inteligente no dispositivo para texto (por exemplo, fornecer tradução instantânea ou preenchimento automático).
SYSTEM_VISUAL_INTELLIGENCE Todas:
  • Idêntico às condições de SYSTEM_UI_INTELLIGENCE, com a diferença de que oferece um processador inteligente no dispositivo para recursos visuais que envolve a análise de dados da câmera. Por exemplo, manter o telefone tela ativa enquanto o usuário está olhando para ela ou determinando o ideal orientação da tela baseada na orientação do rosto do usuário do câmera frontal do dispositivo.
COMPANION_DEVICE_APP_STREAMING Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O aplicativo pode criar e gerenciar canais de comunicação com para que possam trocar dados. O app e os dispositivos conectados precisam autenticar com êxito um ao outro (por exemplo, provando que as 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 os dispositivos dispositivo para permitir que o usuário aja sobre as notificações no dispositivo conectado.
  • Ser capaz de transmitir os metadados necessários para o espelhamento de app para o dispositivo conectado, como a lista de aplicativos disponíveis na dispositivo local.
  • Fazer streaming de apps do dispositivo local para o dispositivo dispositivo depois de o usuário ter indicado sua preferência por fazer isso com consentimento explícito (no celular ou no dispositivo conectado).
  • Capacidade de reproduzir (injetar) eventos que acontecem em uma transmissão em um dispositivo conectado novamente no dispositivo local. Por exemplo: repetindo um evento de toque no tablet nas mesmas coordenadas no celular.
  • O app pode substituir o stream do microfone do dispositivo local por um stream do microfone do dispositivo conectado enquanto um app de streaming está usando o microfone.
  • O app captura o áudio do dispositivo e o transmite ao dispositivo conectado dispositivo.
  • Precisa bloquear o stream da câmera do dispositivo local enquanto um app de streaming estiver usando a câmera.
  • 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 houver apenas uma conta correspondente na registro de conta no dispositivo, (por exemplo, os AccountManager no Android) em ambos os dispositivos. Se este não for o caso, a transmissão deve ser autorizada com um código de uso único mostrado na dispositivo de origem e inserido no dispositivo conectado. Observe que, no caso de dispositivos compatíveis com múltiplos usuários (e não várias contas) com a mesma um isolamento de dados confiável, como em multiusuário Android, que um usuário conta como um dispositivo.
  • Deve parar a transmissão e se desconectar de um dispositivo conectado imediatamente se a autenticação da conta no dispositivo conectado expirar ou for revogado.
  • Deve verificar se um dispositivo conectado está dentro do alcance do Bluetooth do dispositivo local antes e durante a transmissão.
  • É preciso desconectar as sessões de streaming de app em andamento se o usuário não interagir com o dispositivo conectado (por exemplo, teclado, tela touch e o mouse estejam inativos) por 5 minutos. Apps de streaming de vídeo estão isentos com base nesse requisito.
  • Se o dispositivo de origem usar o fator de conhecimento da tela de bloqueio (LSKF), quando o a tela estiver bloqueada, o app não poderá transmitir apps a um dispositivo a menos que ele tenha uma tela de bloqueio e esteja desbloqueado.
  • Se o dispositivo for gerenciado por um administrador, o app precisará respeitar políticas definidas pelo administrador sobre ativar ou desativar o streaming de apps para de dispositivos por perto (por exemplo, usar DevicePolicyManager configurações no Android).
  • Precisa garantir que o monitor remoto e todas as fontes de entrada remota pertencem ao mesmo dispositivo lógico (por exemplo, uma tela e um teclado conectado) da perspectiva do usuário, e os eventos são roteados adequadamente.
  • O usuário precisa conseguir encerrar o streaming no dispositivo local. por exemplo, usando um botão em uma notificação persistente. Isso o comportamento é controlado pela tela de bloqueio, caso o smartphone tenha um bloqueio de tela definido.
  • Deve mostrar uma affordance no dispositivo de origem quando o streaming for acontecendo em outro dispositivo, como um ícone na barra de status ou um notificação contínua.
DEVICE_POLICY_MANAGEMENT Todas:
  • Somente OEMs podem conceder essa função ao app. Os apps não podem solicitar esse papel, já que ele precisa ser concedido imediatamente ao nome do pacote definido pelo OEM quando o dispositivo é enviado.
  • O app precisa provisionar um perfil gerenciado (proprietário do perfil) ou de um dispositivo gerenciado (proprietário do dispositivo), incluindo download e instalação o cliente apropriado do Device Policy será o proprietário do dispositivo/perfil se obrigatórios.
  • Opcionalmente, o app pode atualizar dinamicamente recursos como strings, drawables usados para gerenciamento de políticas do dispositivo.
  • O aplicativo pode ser um aplicativo do sistema pré-instalado ou ser transferido por download e instalado, antes do provisionamento.
  • Nos casos de provisionamento do proprietário do perfil, quando o app detentor do papel instalado em um determinado usuário Android, ele precisa ser instalado em todos os perfis para esse usuário.
SYSTEM_APP_PROTECTION_SERVICE Todas:
  • O aplicativo é um app do sistema do Google.
  • A única finalidade do app é detectar apps potencialmente nocivos. (apps que podem colocar usuários, dados do usuário ou dispositivos em risco, como cavalos de troia, phishing e spyware) ou Celular Software indesejado.
  • O app precisa atender a todos os requisitos descritos no CDD do Android. seção 9.8.6. dados do SO e do ambiente.
  • O app não pode declarar a android.permission.INTERNET permissão normal. Em vez disso, ele precisa acessar a Internet usando bem definidas em um projeto de código aberto.
  • O app não pode ser vinculado a apps, exceto os seguintes apps do sistema: Controlador de permissão e componentes que fornecem telefonia e Internet APIs de terceiros. Cada vinculação permitida precisa ser configurada explicitamente por meio do Configuração de <allow-association> no sistema configuração
  • O app não pode compartilhar dados com apps, a menos que haja um usuário direto ação (por exemplo, o usuário pressiona explicitamente um botão toda vez que o os dados são compartilhados).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O app precisa transferir dados da agenda nos dispositivos iOS ou Android do usuário. smartphone ao dispositivo Android Auto. O dispositivo Android Auto precisa armazenar esses dados da agenda no provedor de agenda.
  • O app precisa fornecer um componente de interface no smartphone que o usuário possa usar para Ative a sincronização e selecione as agendas que você quer sincronizar. O app precisa fornecer um componente de IU no telefone que o usuário pode usar para desligar sincronização da agenda.
  • O app deve funcionar sem uma conexão de Internet. Por exemplo: usando conexões diretas com ou sem fio.
AUTOMOTIVE_NAVIGATION Todas:
  • O app tem uma atividade que pode invocar com uma intent implícita que mostram a localização atual do usuário e os arredores.
  • O app tem uma atividade que pode invocar com uma intent implícita que permitem ao usuário navegar até uma localização geográfica especificada.
  • O app tem uma atividade que é iniciada no cluster de instrumentos quando O app mantém o foco da navegação. A atividade precisa mostrar a localização atual do usuário, os arredores e navegar até uma localização geográfica especificada.
COMPANION_DEVICE_COMPUTER Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • Permita que os usuários espelhem notificações e acessem fotos e mídia do o smartphone em um computador conectado.
SYSTEM_SETTINGS_INTELLIGENCE Pelo menos um dos seguintes:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • Tem um serviço que fornece recursos de inteligência para as Configurações como as sugestões e a pesquisa.
NOTES Todas:
COMPANION_DEVICE_GLASSES O aplicativo pode fazer solicitações de associação e de gerenciamento dispositivo de óculos de grau (usando a API fornecida pelo CompanionDeviceManager ). Quando os óculos e o app estiverem conectados usando a interface fornecido pelo CDM, os usuários podem gerenciar os óculos ao conceder acesso aos contatos e permissão para gerenciar notificações e chamadas.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Todas:
  • O aplicativo é um app do sistema do Google.
  • Somente OEMs podem conceder essa função ao app.
  • O aplicativo pode criar e gerenciar canais de comunicação com para que possam trocar dados. O app e os clientes precisam autenticar uns aos outros (por exemplo, pela provando o conhecimento das chaves compartilhadas) para estabelecer a comunicação canais. Os canais de comunicação precisam ter proteção por criptografia.
  • O app pode enviar notificações do dispositivo local para os dispositivos dispositivo para permitir que o usuário aja sobre as notificações no dispositivo conectado.
  • Ser capaz de transmitir os metadados necessários para o espelhamento de app para o dispositivo conectado, como a lista de aplicativos disponíveis na dispositivo local.
  • Fazer streaming de apps do dispositivo local para o dispositivo dispositivo depois de o usuário ter indicado sua preferência por fazer isso com consentimento explícito (no celular ou no dispositivo conectado).
  • Capacidade de reproduzir (injetar) eventos que acontecem em uma transmissão em um dispositivo conectado novamente no dispositivo local. Por exemplo: repetindo um evento de toque no tablet nas mesmas coordenadas que no smartphone ou a repetição de um evento de entrada que ocorreu no dispositivo de óculos com a mesma semântica de entrada do smartphone.
  • O app pode substituir o stream do microfone do dispositivo local por um stream do microfone do dispositivo conectado enquanto um app de streaming está usando o microfone.
  • O app captura o áudio do dispositivo e o transmite ao dispositivo conectado dispositivo.
  • 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 haja apenas uma conta correspondente no registro de contas do dispositivo (para exemplo, os AccountManager no Android) em ambos os dispositivos. Se este não for o caso, a transmissão deve ser autorizada com um código de uso único mostrado na dispositivo de origem e inserido no dispositivo conectado. Observe que, no caso de dispositivos compatíveis com múltiplos usuários (e não várias contas) com a mesma um isolamento de dados confiável, como em multiusuário Android, que um usuário conta como um dispositivo.
  • Deve parar a transmissão e se desconectar de um dispositivo conectado imediatamente se a autenticação da conta no dispositivo conectado expirar ou for revogado.
  • Se o dispositivo de origem usar LSKF, quando o a tela estiver bloqueada, o app não poderá transmitir apps a um dispositivo a menos que ele tenha uma tela de bloqueio e esteja desbloqueado.
  • Se o dispositivo for gerenciado por um administrador, o app precisará respeitar políticas definidas pelo administrador sobre ativar ou desativar o streaming para de dispositivos por perto (por exemplo, usar DevicePolicyManager configurações no Android).
  • Precisa garantir que o monitor remoto e todas as fontes de entrada remota pertencem ao mesmo dispositivo lógico (por exemplo, uma tela e um teclado conectado) do ponto de vista do usuário, e os eventos são encaminhados de maneira adequada.
  • O usuário precisa conseguir encerrar o streaming no dispositivo local. por exemplo, usando um botão em uma notificação persistente. Isso o comportamento é controlado pela tela de bloqueio, se o smartphone tiver um bloqueio de tela definido.
  • Deve mostrar uma affordance no dispositivo de origem quando o streaming for acontecendo em outro dispositivo, como um ícone na barra de status ou um notificação contínua.
WALLET Uma destas:
  • O aplicativo tem um serviço de APDU NFC que registra pelo menos um AID em a categoria PAYMENT.
  • O app implementa uma instância QuickAccessWalletService.