Чтобы пользователи были уверены, что их данные считываются правильно, четко покажите, как ваше приложение получает данные, которые поступают из свойства packageName класса DataOrigin.
Это можно сделать двумя способами:
Базовая атрибуция
Как минимум, в пользовательском интерфейсе должен быть значок и название источника приложения (или только название, если значок показать нельзя). Базовая атрибуция подходит для следующих экранов: "Главный экран", "Журнал активности" и "Сведения о действии".
Чтобы правильно указать источник, ваше приложение может показывать название и значок приложения, которое изначально записало данные. Это повышает доверие пользователей и позволяет им понять, откуда взята информация о здоровье.
Для получения этой информации не нужно запрашивать разрешение на доступ к конфиденциальной информации, например 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.
Атрибуция с указанием учебного заведения
Приложение должно помогать пользователям узнавать, откуда поступают данные. Для этого в нем должна быть прямая ссылка на экран "Разрешения для приложений" в приложении "Здоровье и спорт". Этот тип атрибуции подходит для следующих экранов: "Сведения о действиях", "Отчеты" и "Статистика".
Синхронизация данных
Если при синхронизации приложения с платформой "Здоровье и спорт" возникает задержка, покажите это уведомление в приложении. Это сообщает пользователю, что процесс может занять некоторое время. Если вы используете уведомления для синхронизации, по умолчанию им должен быть присвоен низкий приоритет.