Skip to main content

Overview

The Synheart Wear Kotlin SDK provides native Android support for streaming biometric data from wearables via Health Connect and cloud APIs (WHOOP, Garmin, Fitbit).

Installation

Gradle (Kotlin DSL)

Add JitPack repository to settings.gradle.kts:
maven { url = uri("https://jitpack.io") }
Add dependency to build.gradle.kts:
dependencies {
    implementation("com.github.synheart-ai:synheart-wear-android:0.1.0")
}

Requirements

  • Android SDK API 21+
  • Kotlin 1.8+
  • Health Connect app installed

Quick Start

Initialize SDK

import ai.synheart.wear.SynheartWear
import ai.synheart.wear.config.SynheartWearConfig
import ai.synheart.wear.models.DeviceAdapter

val synheartWear = SynheartWear(
    context = this,
    config = SynheartWearConfig(
        enabledAdapters = setOf(DeviceAdapter.HEALTH_CONNECT)
    )
)

Request Permissions & Initialize

lifecycleScope.launch {
    val permissions = setOf(
        PermissionType.HEART_RATE,
        PermissionType.STEPS,
        PermissionType.CALORIES
    )

    val result = synheartWear.requestPermissions(permissions)

    if (result[PermissionType.HEART_RATE] == ConsentStatus.GRANTED) {
        synheartWear.initialize()
        val metrics = synheartWear.readMetrics()
        Log.d(TAG, "HR: ${metrics.getMetric(MetricType.HR)} bpm")
    }
}

Real-Time Streaming

lifecycleScope.launch {
    synheartWear.streamHR(interval = 5000L).collect { metrics ->
        val hr = metrics.getMetric(MetricType.HR)
        Log.d(TAG, "Current HR: $hr bpm")
    }
}

Platform Configuration

Add to AndroidManifest.xml:
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
<uses-permission android:name="android.permission.health.READ_STEPS"/>

<queries>
    <package android:name="com.google.android.apps.healthdata" />
</queries>

Resources

For comprehensive documentation, see the full README on GitHub.
Author: Israel Goytom