许多应用都有自定义引导流程,例如功能教育或征求用户同意。要让 Health Connect 能够启动您的引导流程,请将以下内容添加到您的清单文件中
<!-- Required to support pre-Android 14 devices with APK Health Connect -->
<activity
android:name=".OnboardingActivity"
android:exported="true"
android:permission="com.google.android.apps.healthdata.permission.START_ONBOARDING">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_ONBOARDING"/>
</intent-filter>
</activity>
<!-- Required to support Android 14+ devices with platform Health Connect -->
<activity-alias
android:name="UAndAboveOnboardingActivity"
android:exported="true"
android:targetActivity=".OnboardingActivity"
android:permission="android.permission.health.START_ONBOARDING">
<intent-filter>
<action android:name="android.health.connect.action.SHOW_ONBOARDING" />
</intent-filter>
</activity-alias>
用户可以直接从 Health Connect 应用发起与您的应用的连接,而不是从您的应用内发起。如果您的应用除了被授予读写数据权限外,还需要任何其他交互,请提供一个引导 Activity。
版本支持
为了支持 Android 14 之前和 Android 14+ 设备
推荐方法: 创建一个处理两种情况的单个引导 Activity。使用 Activity 别名(如示例所示)来验证 Android 版本之间的兼容性。
替代方法: 导出两个单独的 Activity,每个 Android 版本一个。这种方法可能会增加维护复杂性。
导出的 Activity 要求
当用户尝试将您的应用连接到 Health Connect 时,导出的 Activity 将被启动。此 Activity 必须执行以下操作:
- 显示任何相关的用户教育内容,例如解释写入或读取了哪些数据。
- 如果需要,请求用户授予同意。
- 向 Health Connect 发出权限请求。
- 执行任何其他特定于应用的逻辑,例如安排周期性工作。
- 完成后,允许用户关闭 Activity。
对于*未*导出引导 Activity 的应用,一旦用户尝试连接应用,Health Connect 会将用户带到管理权限屏幕。对于权限授予是集成运行唯一先决条件的应用,这可能是可以接受的。
请注意,引导 Activity 可能会多次启动,例如,如果用户后来撤销了对您应用的权限,然后又重新连接。