Para asegurar a los usuarios que sus datos se leen correctamente, muestra con claridad cómo tu app obtiene los datos, que provienen de la propiedad packageName
de la clase DataOrigin
.
Hay dos maneras de hacerlo:
Atribución básica
Como mínimo, la interfaz de usuario (IU) debe mostrar el ícono y el nombre de la fuente de la app (o solo el nombre de la app si no se puede mostrar el ícono). La atribución básica es adecuada para las siguientes pantallas: Principal, Registro de actividad y Detalles de la actividad.
Para admitir la atribución adecuada, tu aplicación puede mostrar el nombre y el ícono de la aplicación que registró los datos originalmente. Esto mejora la confianza del usuario y proporciona claridad sobre el origen de la información de salud.
No es necesario que solicites ningún permiso sensible, como QUERY_ALL_PACKAGES
, para recuperar esta información. En el siguiente ejemplo, se muestra cómo recuperar la etiqueta y el ícono de la app para un paquete determinado desde 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
}
}
Esta utilidad ayuda a verificar la atribución adecuada, ya que muestra el nombre y el ícono de la app junto con los datos. Consulta la implementación en el ejemplo de HealthConnectManager.kt.

Atribución con educación
Tu app debe ayudar a los usuarios a obtener información sobre el origen de los datos con un vínculo directo a la pantalla “Permisos de apps” en Health Connect. Este tipo de atribución es adecuado para las siguientes pantallas: Detalles de la actividad, Informes y estadísticas.


Sincronización de datos
Si hay suficiente latencia cuando se sincroniza tu app con Health Connect, muestra esta notificación en tu app durante la sincronización. Esto le informa al usuario que el proceso puede tardar en finalizar. Si usas notificaciones para la sincronización, deben establecerse en prioridad baja de forma predeterminada.
