Enviar feedback do app para EMMs

Os provedores de gerenciamento de mobilidade empresarial (EMM) oferecem soluções para organizações para gerenciar dispositivos Android e os apps instalados neles. Essas soluções são normalmente disponíveis como consoles da Web, chamados consoles de EMM. Usar um EMM console do Cloud, os administradores de TI realizam tarefas de gerenciamento de dispositivos e aplicativos em nome dos organização.

Os apps destinados a organizações empresariais podem enviar feedback para EMMs na forma de: estados do app com chave. As APIs estão disponíveis para EMMs recuperarem dados de estado do app codificados que podem ser exibidas no console de EMM. Este canal de comunicação permite que os administradores de TI recebam feedback sobre o status dos apps instalados no os dispositivos que gerenciam.

Por exemplo, um app cliente de e-mail pode usar estados com chaves para confirmar que uma foi configurada, informar quando ocorrerem erros de sincronização ou enviar outras atualizações de status que o desenvolvedor do app considera apropriadas.

Componentes de um estado de app com chave

O estado do app com chave é composto pelo seguinte:

  • Chave:identificador exclusivo do estado do app. Máximo de 100 caracteres.
  • Mensagem:mensagem opcional que descreve o estado do app. Máximo: 1.000 caracteres. Observação: normalmente, as mensagens devem ser significativamente mais curtas do que isso.
  • Dados:valor opcional legível por máquina destinado a EMMs que permite aos administradores de TI para configurar alertas ou filtros com base no valor. Por exemplo, um administrador de TI pode configure um alerta se o campo de dados battery_percentage < 10. Máximo: 1.000 caracteres.
  • Gravidade : a gravidade do estado do app. Os valores permitidos são SEVERITY_ERROR e SEVERITY_INFO (padrão). Definir gravidade apenas como SEVERITY_ERROR condições de erro genuínas que uma organização precisa tomar para corrigir.
  • Carimbo de data/hora : quando um estado de app com chave é definido, ele é enviado automaticamente com uma carimbo de data/hora em milissegundos desde a época.

Enviar feedback sobre as configurações gerenciadas

Caso seu app ofereça suporte às configurações gerenciadas, faça o seguinte: é recomendado enviar estados com chave de aplicativo como forma de atualizar os administradores de TI na o status das configurações definidas. O fluxo de trabalho de exemplo a seguir descreve uma maneira de fazer isso.

estados de app com chave para configurações gerenciadas
  1. Os administradores de TI usam o console de EMM para definir e enviar configurações gerenciadas para Um app instalado em um dispositivo totalmente gerenciado ou em um perfil de trabalho. Por exemplo:
    • Volume: "50%"
    • Moeda: "USDD"
  2. O app tenta aplicar as configurações. O volume foi definido como 50%, mas o código da moeda é inválido e não pode ser aplicado.
  3. Com base no status de cada configuração, o app define um estado com chave. Cada estado do app com chave contém uma chave exclusiva e uma mensagem com detalhes do estado. Recomendamos corresponder a chave de configurações gerenciadas sempre que possível. Exemplo:
    Chave Mensagem Gravidade Carimbo de data/hora
    volume Definido como 50% SEVERITY_INFO 1554461130
    currency Moeda "USDD" não reconhecido SEVERITY_ERROR 1554461130
  4. O provedor de EMM recupera os estados do app com chave definidos pelo app e mostra no console de EMM. Exemplo:
    Configuração Status Ação necessária Hora
    Volume Definido como 50% Não 5 de abril de 2019; 10:45:30
    Moeda ERRO: moeda "USDD" reconhecido. Sim 5 de abril de 2019; 10:45:30

    O provedor de EMM também precisa sinalizar explicitamente todos os estados recebidos com SEVERITY_ERROR para o administrador de TI. Os administradores de TI podem acessar as informações no console do EMM e corrigir os erros nas configurações definidas.

Informar erros resolvidos

Depois que um erro for resolvido, envie imediatamente um estado de acompanhamento do aplicativo para impedir que os EMMs exibam a mensagem de erro por tempo indeterminado. Este acompanhamento deve incluir:

  • A mesma chave como a mensagem de erro inicial.
  • Gravidade de SEVERITY_INFO. que indica que o estado não apresenta uma condição de erro exigir que a organização tome outras medidas.

Adicionar suporte a estados do app com chave

As etapas abaixo descrevem como integrar estados com chaves ao seu app.

Etapa 1: adicionar o repositório Maven do Google ao arquivo settings.gradle

Adicione o repositório Maven do Google como local do repositório no arquivo settings.gradle do seu projeto , conforme mostrado abaixo:

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
       google()
  }
}

Etapa 2: adicionar a biblioteca de feedback corporativo ao seu arquivo build.gradle no módulo

Adicione a dependência abaixo ao build.gradle do módulo. arquivo:

dependencies {
    implementation 'androidx.enterprise:enterprise-feedback:1.0.0'
}

Etapa 3: receber uma instância de KeyedAppStatesReporter

No seu método onCreate(), receba e armazene uma instância do KeyedAppStatesReporter. Isso permite um canal de comunicação entre o app e os provedores de EMM.

Kotlin

val reporter = KeyedAppStatesReporter.create(context)

Java

KeyedAppStatesReporter reporter = KeyedAppStatesReporter.create(context);

Etapa 4: criar uma coleção de estados do app codificados

Siga as práticas recomendadas abaixo ao criar estados de app com chave:

  • Nunca inclua informações de identificação pessoal (PII) em um estado. Os estados dos apps inseridos não são adequados para dados sensíveis.
  • Manter os estados do app codificados dentro dos limites definidos em MAX_KEY_LENGTH, MAX_MESSAGE_LENGTH, e MAX_DATA_LENGTH.
  • Uma única chamada setStates ou setStatesImmediate é limitada a 300 KB no total (aproximadamente 1/3 do total que pode ser armazenado por dia). Exceder esse valor resultará em um comportamento indefinido.
  • Defina a gravidade de um estado apenas como SEVERITY_ERROR se existe uma condição que a organização precisa tomar para corrigir.
  • Ao enviar um estado de aplicativo que contenha erros, certifique-se de enviar também um depois que os erros forem resolvidos, para que o EMM possa parar de sinalizar o no console.
  • Para o estado de acompanhamento, use o mesmo key como o estado inicial que retornou o erro e definiu a gravidade como SEVERITY_INFO.

O snippet abaixo cria uma coleção de estados com chave do app:

Kotlin

    val states = hashSetOf(KeyedAppState.builder()
             .setKey("key")
             .setSeverity(KeyedAppState.SEVERITY_INFO)
             .setMessage("message")
             .setData("data")
             .build())
    

Java

    Collection states = new HashSet<>();
    states.add(KeyedAppState.builder()
     .setKey("key")
     .setSeverity(KeyedAppState.SEVERITY_INFO)
     .setMessage("message")
     .setData("data")
     .build());
    

Etapa 5: definir os estados do app com chave

O setStates() envia imediatamente os estados com chave do app para o app Play Store (nome do pacote: com.android.vending) se estiver instalado no dispositivo, assim como os administradores do dispositivo ou perfil de trabalho.

Kotlin

keyedAppStatesReporter.setStates(states)

Java

keyedAppStatesReporter.setStates(states);

Testar estados do app com chave

Para instruções detalhadas sobre o teste, consulte Feedback do app de teste.