Ham verileri okuma

Aşağıdaki örnekte, ortak iş akışının bir parçası olarak ham verilerin nasıl okunacağı gösterilmektedir.

Basit okuma

Health Connect'teki Adımlar veri türü, kullanıcının okumalar arasında kaç adım attığını kaydeder. Adım sayısı sağlık, fitness ve sağlıklı yaşam platformlarında yaygın olarak kullanılan bir ölçümü temsil eder. Health Connect, adım sayısı verilerini okumayı ve yazmayı kolaylaştırır.

Kayıtları okumak için bir ReadRecordsRequest oluşturun ve readRecords yöntemini çağırırken bu kimliği sağlayın.

Aşağıdaki örnekte, bir kullanıcının belirli bir süre içindeki adım sayısı verilerinin nasıl okunacağı gösterilmektedir. SensorManager öğesini içeren genişletilmiş bir örnek için adım sayısı veri kılavuzuna bakın.

suspend fun readStepsByTimeRange(
    healthConnectClient: HealthConnectClient,
    startTime: Instant,
    endTime: Instant
) {
    try {
        val response = healthConnectClient.readRecords(
            ReadRecordsRequest(
                StepsRecord::class,
                timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
            )
        )
        for (stepRecord in response.records) {
            // Process each step record
        }
    } catch (e: Exception) {
        // Run error handling here
    }
}

Daha önce yazılmış verileri okuma

Bir uygulama daha önce Health Connect'e kayıt yazdıysa uygulamanın bu kayıtlar için Okuma izni gerektirmeden bu kayıtları okuması mümkündür. Bu, kullanıcı yeniden yükledikten sonra uygulamanın Health Connect ile yeniden senkronize edilmesinin gerektiği senaryolar için geçerlidir.

Bu senaryoda verileri okumak için ReadRecordsRequest öğenizin dataOriginFilter parametresinde paket adını DataOrigin nesnesi olarak belirtmeniz gerekir.

Aşağıdaki örnekte Adım kayıtlarını okurken paket adının nasıl belirtileceği gösterilmektedir:

try {
    val response =  healthConnectClient.readRecords(
        ReadRecordsRequest(
            recordType = StepsRecord::class,
            timeRangeFilter = TimeRangeFilter.between(startTime, endTime),
            dataOriginFilter = setOf(DataOrigin("com.my.package.name"))
        )
    )
    for (record in response.records) {
        // Process each record
    }
} catch (e: Exception) {
    // Run error handling here
}

30 günlük okuma kısıtlaması

Health Connect, herhangi bir iznin ilk verilmesinden önceki 30 güne kadar olan verileri okuyabilir.

Bununla birlikte, bir kullanıcı uygulamanızı silerse izin geçmişi kaybolur. Kullanıcı uygulamanızı yeniden yükler ve tekrar izin verirse uygulamanız, Health Connect'teki verileri bu yeni tarihten 30 gün öncesine kadar okuyabilir.

Örnek

Bir kullanıcı uygulamanıza ilk olarak 30 Mart 2023'te okuma izni verdiyse uygulamanızın okuyabileceği en erken veriler 28 Şubat 2023'ten itibaren olur.

Kullanıcı, daha sonra 10 Mayıs 2023'te uygulamanızı siler. Kullanıcı, 15 Mayıs 2023'te tarayıcıyı yeniden yüklemeye ve okuma izni vermeye karar veriyor. Uygulamanızın şu anda veri okuyabileceği en erken tarih 15 Nisan 2023'tür.

Ön plan kısıtlaması

Health Connect ile veri okuma işlemi, ön planda çalışan uygulamalarla sınırlıdır. Bu kısıtlama, kullanıcı gizliliğini daha da güçlendirmek için uygulanmaktadır. Böylece Health Connect'in, verileri için arka planda okuma erişimine sahip olmadığı ve bu verilerin yalnızca ön planda okunup erişilebileceği konusunda garanti vermiş olursunuz.

Uygulamanızda bir okuma gösterme gibi kesintilerin tolere edilebilir olduğu durumlarda, verileri doğrudan Health Connect'ten istemci uygulamanıza okuyun.

Health Connect'te bir dizi veriyi okuyup bu veriyi başka bir yere yazmak gibi kesinti olmamasını tercih ettiğiniz durumlarda hızlı bir şekilde kapatılabilecek Etkinlik yerine ForegroundService kullanın.