diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14a68b6..b0bba1b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,12 +8,12 @@ plugins { android { namespace = "com.mrunk.wearhr" - compileSdk = 35 + compileSdk = 34 defaultConfig { applicationId = "com.mrunk.wearhr" - minSdk = 30 // Wear OS 3+ (passt auch für Wear OS 5) - targetSdk = 35 + minSdk = 30 + targetSdk = 34 versionCode = 1 versionName = "0.1.0" } @@ -56,7 +56,7 @@ dependencies { // Wear OS UI helpers (optional, for round screens) implementation("androidx.wear:wear:1.3.0") - // Health Services client (Wear OS) - Version corrected + // Health Services client (Wear OS) implementation("androidx.health:health-services-client:1.1.0-alpha01") // For .await() on ListenableFuture diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2e570ed..3de4b94 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,10 +17,14 @@ android:allowBackup="false" android:networkSecurityConfig="@xml/network_security_config"> + + + android:foregroundServiceType="health"> Unit) : ExerciseUpdateListener { private val scope = CoroutineScope(Dispatchers.Default + Job()) @@ -34,14 +33,16 @@ class Health(private val ctx: Context, private val onHr: (Int) -> Unit) : Exerci } suspend fun stop() { - exerciseClient.pauseExerciseAsync().await() - exerciseClient.endExerciseAsync().await() - exerciseClient.clearUpdateListener() + runCatching { exerciseClient.pauseExerciseAsync().await() } + runCatching { exerciseClient.endExerciseAsync().await() } + runCatching { exerciseClient.clearUpdateListener() } } override fun onExerciseUpdateReceived(update: ExerciseUpdate) { - val hr = update.latestMetrics[DataType.HEART_RATE_BPM] - val bpm = hr?.value?.toInt() - if (bpm != null && bpm > 0) onHr(bpm) + val hrDataPoint = update.latestMetrics[DataType.HEART_RATE_BPM] + val bpm = hrDataPoint?.value?.toInt() + if (bpm != null && bpm > 0) { + onHr(bpm) + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6a33f72..d9e9527 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -42,24 +42,31 @@ app:layout_constraintTop_toBottomOf="@id/inputToken" app:layout_constraintEnd_toEndOf="parent"/> -