Amostra avançada

Nesta seção, pressupomos que você já concluiu o guia "Hello World". Ele vai guiar você pela conversão do texto em uma implementação completa. Ele geralmente vincula as seções de referência de desenvolvimento deste documento.

Trocar a lógica do exemplo "Hello World" pela lógica real de vários perfis

Fique à vontade para manter uma lista confusa e não se preocupe com práticas recomendadas, como a capacidade de teste. Verifique se ele funciona.

Isso inclui modificar a classe entre perfis, as chamadas entre perfis e o provedor. Se você precisar de um Context no método do provedor ou no construtor da classe do provedor, adicione um como parâmetro, e o SDK o fornecerá automaticamente.

Você precisa decidir se as chamadas serão assíncronas ou síncronas. Também é necessário garantir que todos os tipos de parâmetro e retorno usados pelas chamadas entre perfis sejam compatíveis.

Refatorar sua lógica para ter uma arquitetura que possa ser enviada

Leia cada uma das sugestões de arquitetura primeiro para não precisar fazer várias refatorações conflitantes. Depois de planejar quaisquer alterações, trabalhe com elas e marque-as como concluídas, recriando e testando após cada alteração.

Cheque as informações de privacidade e segurança

Verifique se você não corre o risco de armazenar dados no perfil errado ou enviar dados para um servidor (incluindo o registro do servidor) do perfil errado.

  • Considere designar um perfil como principal para simplificar as chamadas. Pense no que acontece se a lógica for executada em ambos os perfis.
  • Atualize a interface quando a disponibilidade do outro perfil mudar.
  • Leia a discussão sobre exceções caso precise tomar alguma medida.
  • Se você espera que os usuários usem apenas o ícone do app em um dos dois perfis, adicione o atributo android:crossProfile = "true" do manifesto. Isso impede que o app não usado diretamente pelo usuário seja delegado para buckets de standby do app mais baixos.

Adicionar testes

Consulte a documentação de testes.

Considere as permissões

  • Se o app tiver consentimento total, mude a permissão de INTERACT_ACROSS_USERS para INTERACT_ACROSS_PROFILES e implemente a solicitação de permissão do usuário. Não é possível fazer upload de apps que declaram INTERACT_ACROSS_PROFILES para a Play Store até que estejam na lista de permissões. Portanto, essa mudança no manifesto precisa ficar atrás de uma flag até que isso seja concluído.

  • Se o app tiver permissão prévia, faça isso também se quiser pedir aos usuários que a desativaram anteriormente. Mas seja responsável: não spamme os usuários.