Egzersiz etkinliklerini işleme

Sağlık hizmetleri, ExerciseEvents, Bu reklamlar, egzersiz sırasında bir etkinlik oluştuğunda uygulamanıza bildirim gönderir ve bununla ilişkili meta verileri sağlar.

Bağımlılıkları ekleme

Egzersiz etkinliklerini kullanmak için Sağlık Hizmetleri SDK'sının en son sürümü gerekir.

Sağlık Hizmetleri'ne bağımlılık eklemek için Google Maven deposunu eklemeniz gerekir projenize ekleyin. Daha fazla bilgi için bkz. Google'ın Maven deposu.

Ardından modül düzeyindeki build.gradle dosyanıza aşağıdaki bağımlılığı ekleyin:

Modern

dependencies {
    implementation "androidx.health:health-services-client:1.1.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.health:health-services-client:1.1.0-alpha03")
}

Özellikleri kontrol edin

Sağlık Hizmetleri'ndeki tüm egzersizlerde ve veri türlerinde olduğu gibi özellikleri şuradan kontrol edin: başlatma. Örneğin, ExerciseEvents (ExerciseCapabilities istemeye ek olarak), ExerciseTypeCapabilities.supportedExerciseEvents kullan desteklenen bir egzersizdir. Belirli bir ExerciseEvent desteklendiğini onayladıktan sonra, kullanarak egzersiz etkinliğinin özelliklerini de sorgulamalısınız. getExerciseEventCapabilityDetails

Aşağıdaki örnekte, GOLF_SHOT_EVENT destekleniyor ve ardından GOLF_SHOT_EVENT öğesinin Salıncak Türü Sınıflandırmasını destekler.

fun handleCapabilities(capabilities: ExerciseCapabilities) {
  val golfCapabilities = capabilities.typeToCapabilities[ExerciseType.GOLF]
  val golfShotEventSupported =
    golfCapabilities
      ?.supportedExerciseEvents
      ?.contains(ExerciseEventType.GOLF_SHOT_EVENT)
  val golfSwingTypeClassificationSupported =
    golfCapabilities
      ?.getExerciseEventCapabilityDetails(ExerciseEventType.GOLF_SHOT_EVENT)
      ?.isSwingTypeClassificationSupported ?: false
}

Bir egzersizdeki egzersiz etkinliklerini isteme

Egzersizi başlatmak ve alıştırma kapsamında bir egzersiz etkinliği talep etmek için, alıştırma için ExerciseConfig beyanında bulunun ve exerciseEventType için bir alan ekleyin.

Aşağıdaki örnek, bir GOLF alıştırmasının parçası olarak GOLF_SHOT_EVENT isteğinde bulunuyor:

val config = ExerciseConfig(
  exerciseType = ExerciseType.GOLF,
  dataTypes = setOf(....),
  // ...
  exerciseEventTypes = setOf(ExerciseEventType.GOLF_SHOT_EVENT),
)

Egzersiz etkinliği güncellemelerine kaydolun

Mevcut altyapı kapsamında ExerciseEvent güncellemeleri alabilirsiniz uygulamanızda egzersiz güncellemeleri almak için özellik bulunuyor. Aşağıdaki örnekte, GolfShotEvent güncellemeleri için desteği nasıl dahil edeceğiniz gösterilmektedir:

val callback = object : ExerciseUpdateCallback {
  override fun onExerciseUpdateReceived(update: ExerciseUpdate) {
      ...
  }
  // [ExerciseEvent] intended to come through with low latency and out of
  // band of onExerciseUpdateReceived()
  override fun onExerciseEventReceived(event: ExerciseEvent) {
    when (event) {
      is GolfShotEvent -> {
        if (it.swingType == GolfShotSwingType.PUTT) {
          println("Putt detected!")
        }
      }
    }
  }
}