Я тестирую интеграцию Health Connect в своем приложении на Android 14.
Когда я пытаюсь вставить данные о весе, потреблении жидкости или питании, я получаю следующие ошибки:
Caused by: android.health.connect.HealthConnectException: android.health.connect.HealthConnectException: Conflict found, but couldn't read the entry.
at android.health.connect.aidl.HealthConnectExceptionParcel$1.createFromParcel(HealthConnectExceptionParcel.java:33)
at android.health.connect.aidl.HealthConnectExceptionParcel$1.createFromParcel(HealthConnectExceptionParcel.java:29)
at android.os.Parcel.readTypedObject(Parcel.java:4055)
at android.health.connect.aidl.IInsertRecordsResponseCallback$Stub.onTransact(IInsertRecordsResponseCallback.java:106)
at android.os.Binder.execTransactInternal(Binder.java:1392)
at android.os.Binder.execTransact(Binder.java:1299)
Этот же код отлично работает на Android 13, где приложение HealthConnect устанавливается как отдельное приложение и не является частью ОС.
Любая помощь как выяснить, в чем здесь проблема, будет оценено по достоинству.
EIDT: минимальный воспроизводимый пример
val time = ZonedDateTime.parse("2024-03-16T00:00:00+02:00[Europe/Sofia]")
val r = WeightRecord(
time = time.toInstant(),
zoneOffset = time.offset,
weight = 60.kilograms,
metadata = Metadata(
clientRecordId = "weight_dummy_id", clientRecordVersion = 0
)
)
healthConnectClient.insertRecords(listOf(r)) // this throws the error
Перед выполнением приведенного выше кода я убедился, что выполняются следующие условия:
HealthConnectClient.getSdkStatus(context) == HealthConnectClient.SDK_AVAILABLE
healthConnectClient.permissionController.getGrantedPermissions().contains("android.permission.health.WRITE_WEIGHT")
Я использую:
androidx.health.connect:connect-client:1.1.0-alpha07
В AndroidManifest.xml у меня есть:
...
...
...
Подробнее здесь: https://stackoverflow.com/questions/781 ... -the-entry