Чтобы гарантировать пользователям, что их данные считываются правильно, четко покажите, как ваше приложение получает данные, которые берутся из свойства packageName
класса DataOrigin
.
Добиться этого можно двумя способами:
Базовая атрибуция
Ваш пользовательский интерфейс (UI) должен как минимум отображать значок и название исходного приложения (или только название приложения, если значок не отображается). Базовая атрибуция подходит для следующих экранов: «Главная», «Журнал активности» и «Сведения об активности».
Для обеспечения корректной атрибуции ваше приложение может отображать название и значок приложения, изначально зарегистрировавшего данные. Это повышает доверие пользователей и даёт чёткое представление об источнике медицинской информации.
Для получения этой информации вам не нужно запрашивать какие-либо конфиденциальные разрешения, такие как QUERY_ALL_PACKAGES
. В следующем примере показано, как получить метку и значок приложения для заданного пакета из 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
}
}
Эта утилита помогает проверить правильность атрибуции, отображая название и значок приложения рядом с данными. Реализацию см. в примере HealthConnectManager.kt .

Атрибуция с образованием
Ваше приложение должно помогать пользователям получать информацию об источнике данных, предоставляя прямую ссылку на экран «Разрешения приложения» в Health Connect. Этот тип атрибуции подходит для следующих экранов: «Сведения об активности», «Отчёты и аналитика».


Синхронизация данных
Если синхронизация вашего приложения с Health Connect происходит с достаточной задержкой, отображайте это уведомление в приложении во время синхронизации. Это информирует пользователя о том, что процесс может занять некоторое время. Если вы используете уведомления для синхронизации, им следует по умолчанию задать низкий приоритет.
