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 outras soluções recomendadas
- 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
paraINTERACT_ACROSS_PROFILES
e implemente a solicitação de permissão do usuário. Não é possível fazer upload de apps que declaramINTERACT_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.