为了让用户确信其数据正被正确读取,请清楚展示您的应用如何获取数据,这些数据来自 DataOrigin
类的 packageName
属性。
您可以采用下列两种方法:
基本归因
最起码,您的界面 (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 中“应用权限”界面的直接链接,以便用户轻松获取有关数据来源的信息。此类归因适用于以下界面:活动详情、报告和数据分析。


数据同步
如果应用与健康数据共享同步时延迟时间足够长,请在同步期间在应用中显示此通知。这会告知用户该流程可能需要一段时间才能完成。如果您使用通知进行同步,则应默认将其设置为低优先级。
