三星远程开发测试平台

反馈 注册 登录

三星Galaxy Watch4 | 高效开发必看

适配指导 | Wear Health Services

Google在今年四月最新发布的Wear OS库中,推出了一项新功能:Health Services。通过Health Services即可利用系统能力,简化应用开发者的重复工作,使其更专注于开发独特功能来提升用户体验。

三星和Google在技术创新方面一直保持着深度的合作,三星最新一代Galaxy Watch4系列将首次搭载和Google深度定制的Wear OS 系统,兼容Wear OS应用。包括这次的新功能Health Services,也是三星和Google从软硬件共同打造。我们希望在三星设备上有更多中国应用使用Health Services功能,扩大应用的适配范围,为用户带来更可靠、更省电的使用体验。

1.   什么是Health Services

Health Services是各种传感器和相关算法的中介,为APP提供活动、锻炼和健康相关的高质量数据。Health Services会自动配置所有健身相关的传感器,收集传感器数据,并计算心率、距离、卡路里、海拔、楼层、速度、配速等指标。 APP可以直接从 Health Services得到这些数据,简化每个APP自己连接传感器、配置传感器、接收原始传感器数据、使用自己的算法来获取信息的繁琐过程。

image.png

Ø  Health Services 使用优化电源效率的传感器配置,节省电量。

Ø  统一计算方法,确保同一设备上所有APP的数据一致性。

Ø  APP可以利用在系统本地的强大算法,简化工作量。

2.   如何使用Health Services

Google提供了Jetpack软件包:androidx.health:health-services-client:1.0.0-alpha01,为开发者提供了Health Services库。目前,该软件包支持Wear OS 3模拟器和即将推出的设备,未来也会推广到更多平台。

2.1声明依赖项

在应用或模块的 build.gradle 文件中,将 Google Maven 代码库添加到项目中,添加依赖项:

dependencies {
  implementation 'androidx.health:health-services-client:1.0.0-alpha01'
  // For kotlin, this library helps bridge between Futures and coroutines.
  implementation "com.google.guava:guava:30.1.1-android"
  implementation "androidx.concurrent:concurrent-futures-ktx:1.1.0"
}

为了与Health Services进行交互,在应用AndroidManifest.xml文件中添加以下内容:

<queries>
   <package android:name="com.google.android.wearable.healthservices" />
</queries>

2.2按场景提供API
根据使用场景,分为被动追踪和主动追踪。
2.2.1    被动追踪
如果您的APP需要跟踪用户全天的活动,那么 PassiveMonitoringClient 是一个绝佳选择。
1.     了解设备可以跟踪哪种数据类型:

val healthClient = HealthServices.getClient(this /*context*/)
val passiveMonitoringClient = healthClient.passiveMonitoringClient
lifecycleScope.launchWhenCreated {
   val capabilities = passiveMonitoringClient.capabilities.await()
   supportsHeartRate =
       DataType.HEART_RATE_BPM in capabilities.supportedDataTypesPassiveMonitoring
   supportsStepsEvent =
       DataType.AGGREGATE_STEP_COUNT in capabilities.supportedDataTypesEvents
}

2.     两种操作方式:数据收集和事件跟踪。数据收集适用于数据更新相对不频繁且随时间分布的长期体验。事件跟踪是指设置某种触发条件,例如达到特定步数、达到特定心率。
方式一:数据收集:
被动数据收集适用于需要后台监视Health Services数据的应用。 APP可以选择接收所有数据点,或者只有与特定数据类型相关的数据点。
需要使用PassiveMonitoringClient在后台接收数据更新。Health Services批处理更新,数据点和用户活动状态可能反映过去发生的事件,应用需要利用对象中包含的时间戳正确评估数据。
1)使用 BroadcastReceiver 接收数据更新,在onReceive中,使用PassiveMonitoringUpdate.fromIntent解析数据。