Para garantir aos usuários que os dados deles estão sendo lidos corretamente, mostre claramente como seu
app obtém dados, que vêm da
propriedade packageName da classe DataOrigin.
Há duas maneiras de fazer isso:
Atribuição básica
No mínimo, sua interface do usuário precisa mostrar o ícone e o nome da fonte do app (ou apenas o nome do app se o ícone não puder ser mostrado). A atribuição básica é adequada para as seguintes telas: inicial, registro de atividades e detalhes da atividade.
Para oferecer suporte à atribuição adequada, seu aplicativo pode mostrar o nome e o ícone do aplicativo que gravou os dados originalmente. Isso melhora a confiança do usuário e oferece clareza sobre a origem das informações de saúde.
Não é necessário solicitar permissões sensíveis, como
QUERY_ALL_PACKAGES, para recuperar essas informações. O exemplo a seguir demonstra como recuperar o rótulo e o ícone do app para um determinado pacote do PackageManager:
fun getAppLabelAndIcon(context: Context, packageName: String): Pair<CharSequence?, Drawable?>{
return try {
val pm = context.packageManager
val appInfo = pm.getApplicationInfo(packageName, 0)
val label = pm.getApplicationLabel(appInfo)
val icon = pm.getApplicationIcon(appInfo)
label to icon
} catch (e: PackageManager.NameNotFoundException){
null to null
}
}
Esse utilitário ajuda a verificar a atribuição correta mostrando o nome e o ícone do app ao lado dos dados. Consulte a implementação na amostra HealthConnectManager.kt.
Atribuição com base em informações
O app precisa ajudar os usuários a saber qual foi a origem dos dados com um link direto para a tela "Permissões do app" na Conexão Saúde. Esse tipo de atribuição é adequado para as seguintes telas: detalhes da atividade, relatórios e insights.
Sincronização de dados
Se houver latência suficiente ao sincronizar seu app com a Conexão Saúde, mostre esta notificação no app durante a sincronização. Isso informa ao usuário que o processo pode levar algum tempo para ser concluído. Se você usar notificações para sincronização, elas deverão ser definidas como de baixa prioridade por padrão.