Rohdaten lesen

Das folgende Beispiel zeigt, wie Sie Rohdaten als Teil des allgemeinen zu optimieren.

Einfacher Lesezugriff

Mit dem Datentyp „Schritte“ in Health Connect wird die Anzahl der Schritte eines Nutzers erfasst zwischen den Lesematerialien aufgenommen werden. Die Schrittzahlen stellen eine gängige Messung Gesundheits-, Fitness- und Wellness-Plattformen. In Health Connect ist es einfach, und die Schrittzahldaten schreiben.

Zum Lesen von Einträgen müssen Sie einen ReadRecordsRequest erstellen und angeben wenn Sie readRecords aufrufen.

Das folgende Beispiel zeigt, wie die Schrittzahldaten eines Nutzers innerhalb einer zu einer bestimmten Zeit. Für ein erweitertes Beispiel mit SensorManager: Schritte ansehen Datenleitfaden.

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

Zuvor geschriebene Daten lesen

Wenn eine App zuvor Einträge in Health Connect geschrieben hat, ist es möglich, dass können Sie sie ohne Leseberechtigung für diese Datensätze. Dies gilt für Szenarien, in denen die App neu synchronisiert werden muss, Health Connect, nachdem der Nutzer es neu installiert hat.

Um in diesem Szenario Daten zu lesen, müssen Sie den Paketnamen als DataOrigin-Objekt im dataOriginFilter-Parameter Ihres ReadRecordsRequest

Das folgende Beispiel zeigt, wie Sie einen Paketnamen beim Lesen der Schritte Einträge:

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
}

Lesebeschränkung für 30 Tage

Health Connect kann Daten bis zu 30 Tage vor dem Zeitpunkt lesen, an dem eine Berechtigung erteilt wurde zuerst gewährt wurde.

Löscht ein Nutzer Ihre App jedoch, geht der Berechtigungsverlauf verloren. Wenn der Nutzer deine App neu installiert und die Berechtigung erneut erteilt, kann deine App Daten von Health Connect bis zu 30 Tage vor dem neuen Datum.

Beispiel

Wenn ein Nutzer Ihrer App die Leseberechtigung am 30. März 2023 erstmals erteilt hat, Die frühesten Daten, die deine App abrufen könnte, wären ab dem 28. Februar 2023 ab.

Der Nutzer löscht Ihre App dann am 10. Mai 2023. Der Nutzer beschließt, das Programm neu zu installieren. und Leseberechtigung erteilen. Das früheste Datum, ab dem Ihre App jetzt Zugriff hat gelesene Daten vom 15. April 2023.

Vordergrundbeschränkung

Das Lesen von Daten mit Health Connect ist auf Anwendungen beschränkt, die in der im Vordergrund. Diese Einschränkung dient dazu, den Datenschutz für Nutzer weiter zu stärken. Dadurch wird sichergestellt, dass Nutzer*innen, auf die Health Connect keinen Lesezugriff im Hintergrund hat, und nur im Vordergrund gelesen und aufgerufen werden.

Wenn Unterbrechungen akzeptabel sind, wie etwa eine Daten in Ihrer Anwendung abrufen, direkt aus Health Connect zum Client lesen .

Für Situationen, in denen Sie Unterbrechungen bevorzugen, z. B. in einem Bereich aus Health Connect, das sie dann an anderer Stelle schreiben und hochladen, ForegroundService statt einer Aktivität, bei der sie schnell geschlossen werden kann.