Odczyt nieprzetworzonych danych

Poniższy przykład pokazuje, jak odczytywać nieprzetworzone dane w ramach wspólnego procesu tworzenia kampanii.

Proste czytanie

Typ danych Kroki w Health Connect rejestruje liczbę kroków użytkownika między odczytami. Liczba kroków to wspólny pomiar z platform zdrowotnych, fitnessowych i wellness. Health Connect ułatwia czytanie i zapis danych o liczbie kroków.

Aby odczytać rekordy, utwórz ReadRecordsRequest i udostępnij go przy połączeniu z numerem readRecords.

Poniższy przykład pokazuje, jak odczytać dane o liczbie kroków użytkownika w w określonym czasie. Rozszerzony przykład z SensorManager: sprawdź liczbę kroków z przewodnikiem po danych.

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
    }
}

Odczytywanie wcześniej zapisanych danych

Jeśli aplikacja zapisała już dane w Health Connect, może to odczytuje je bez konieczności przygotowywania odpowiednich uprawnień . Ma to zastosowanie w sytuacjach, gdy aplikacja musi ponownie zsynchronizować się z Health Connect po ponownym zainstalowaniu aplikacji przez użytkownika.

Aby w takiej sytuacji odczytać dane, musisz wskazać nazwę pakietu jako DataOrigin w parametrze dataOriginFilter parametru ReadRecordsRequest

Poniższy przykład pokazuje, jak wskazać nazwę pakietu podczas odczytu kroków rekordy:

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
}

Ograniczenie czytania przez 30 dni

Health Connect może odczytywać dane nawet przez 30 dni przed przyznaniem jakichkolwiek uprawnień. przyznaną jako pierwszy.

Jeśli jednak użytkownik usunie Twoją aplikację, historia uprawnień zostanie utracona. Jeśli użytkownik ponownie zainstaluje Twoją aplikację i ponownie przyzna jej uprawnienia, będzie mogła odczytywać dane z Health Connect do 30 dni przed nową datą.

Przykład

Jeśli 30 marca 2023 r. użytkownik po raz pierwszy przyznał aplikacji uprawnienia do odczytu, najstarsze dane, jakie aplikacja może odczytać, pochodzą z 28 lutego 2023 roku.

Następnie użytkownik usunie Twoją aplikację 10 maja 2023 r. Użytkownik decyduje się na ponowne zainstalowanie. 15 maja 2023 r. i przyznać uprawnienia do odczytu. Najwcześniejsza możliwa data aplikacji od 15 kwietnia 2023 r.

Ograniczenie na pierwszym planie

Odczyt danych w Health Connect jest ograniczony do aplikacji uruchomionych w na pierwszym planie. To ograniczenie ma na celu jeszcze większą ochronę prywatności użytkowników. Dzięki temu użytkownicy będą mieli pewność, że Health Connect nie ma uprawnień do odczytu w tle Są one też odczytywane i otwierane tylko na pierwszym planie.

W sytuacjach, w których przerwy są dozwolone, na przykład w przypadku wyświetlania odczyt w aplikacji, odczyt bezpośrednio z Health Connect przez klienta aplikacji.

Jeśli nie chcesz przerywać oglądania filmu, np. odczytywanie zakresu danych z Health Connect, a potem zapisać je i przesłać w innym miejscu, ForegroundService, a nie aktywności, którą można szybko zamknąć.