数据显示和提供方信息

为了让用户确信其数据正被正确读取,请清楚展示您的应用如何获取数据,这些数据来自 DataOrigin 类的 packageName 属性

您可以采用下列两种方法:

  1. 基本提供方信息
  2. 教育性归因

基本归因

最起码,您的界面 (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 示例中的实现。

读取数据的基本提供方信息
图 1:读取数据的基本提供方信息

教育性归因

您的应用应提供指向 Health Connect 中“应用权限”界面的直接链接,以便用户轻松获取有关数据来源的信息。此类归因适用于以下界面:活动详情、报告和数据分析。

合作伙伴应用中的活动详情和报告界面中的提供方信息 合作伙伴应用中的数据洞见界面中的提供方信息
图 2:包含教育变体的提供方信息

合作伙伴应用中的活动详情和报告界面中的提供方信息 合作伙伴应用中的数据洞见界面中的提供方信息

数据同步

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

显示数据同步状态
图 3:显示的数据同步状态