Ham verileri okuma

Aşağıdaki örnekte, genel bir araştırmanın bir parçası olarak ham verilerin nasıl okunacağı iş akışını takip edin.

Basit okuma

Health Connect'teki "Adımlar" veri türü, kullanıcının izlediği adım sayısını yakalar. ölçüm yapabilirsiniz. Adım sayıları, proje zaman çizelgesinde sağlıklı yaşam platformlarının bir parçası. Health Connect, okumayı kolaylaştırır ve adım sayısı verilerini yazın.

Kayıtları okumak için bir ReadRecordsRequest oluşturun ve sağlayın. readRecords numaralı telefonu aradığınızda.

Aşağıdaki örnekte, devam edebilir. SensorManager ile genişletilmiş bir örnek için adım sayısını görün veri rehberi.

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 bu kayıtların olması mümkündür bunlara okuma izni gerekmeden okumasını sağlamak için kayıtları. Bu, uygulamanın Kullanıcı tarafından yeniden yüklendikten sonra Health Connect.

Bu senaryoda verileri okumak için paket adını dataOriginFilter parametresindeki DataOrigin nesnesi ReadRecordsRequest.

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

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, izin alınmasından önceki 30 güne kadar olan verileri okuyabilir. vermiştir.

Ancak, bir kullanıcı uygulamanızı silerse izin geçmişi kaybolur. Kullanıcı uygulamanızı yeniden yüklediğinde ve tekrar izin verdiğinde, uygulamanız Bu yeni tarihten 30 gün öncesine kadar Health Connect.

Örnek

Bir kullanıcı ilk olarak 30 Mart 2023'te uygulamanıza okuma izni verdiyse Uygulamanızın geri okuyabileceği en erken veriler 28 Şubat 2023 tarihli olacaktır devam edebilir.

Kullanıcı, daha sonra 10 Mayıs 2023'te uygulamanızı siler. Kullanıcı, yükleme işlemini okuma izni vermeniz gerekir. Uygulamanızın şu an için en erken tarihi 15 Nisan 2023 tarihli veriler okunmuştur.

Ön plan kısıtlaması

Health Connect ile veri okuma, yalnızca şurada çalışan uygulamalarla sınırlıdır: ön plan. Bu kısıtlama, kullanıcı gizliliğini daha da güçlendirmek için uygulanmaktadır. Bu sayede kullanıcılar Health Connect'in arka planda okuma erişimine sahip olmayabilir. ve bu verilere yalnızca ön planda erişiliyor.

Kesintilerin tolere edilebilir olduğu durumlarda; örneğin, uygulamanızda okuma, doğrudan Health Connect'ten istemcinize okuma bir uygulamadır.

Kesinti yaşamamayı tercih ettiğiniz durumlar için (ör. aralık okuma) verileri güncelleyip başka bir yere yazıp yüklemek yerine ForegroundService, hızlı bir şekilde kapatılabileceği bir Etkinlik değildir.