API Google Fit не работает на Galaxy Watch 4

Я разрабатываю приложение для часов 4 и хочу использовать Google Fit API, но это не работает. Когда я пытаюсь создать запись, датчики, историю и других клиентов и подписаться на датчики (например: OXYGEN_SATURATION или STEP_COUNT или TYPE_HEART_RATE_BPM) (по этому руководству: https://developers.google.com/fit/android/api-client- пример ), я получаю эту ошибку:

API: Fitness.CLIENT недоступен на этом устройстве. Ошибка подключения: ConnectionResult{statusCode=INVALID_ACCOUNT, разрешение=null, сообщение=null}.

Я принял все разрешения для датчиков Google Fit. Пользуюсь galaxy watch4 classic (sm-r880) (куплен в России).

Я попытался собрать и запустить это приложение на Galaxy S9 (sm-g960f), и оно работает нормально, я не получаю эту ошибку при запуске того же кода, и я могу создавать клиентов и подписываться на датчики. Я использовал один и тот же аккаунт Google для мобильных устройств и часов.

Я подготовил логи, которые собирал через logcat с часов 4 и галакси 9. В логах часов можно найти, что ни один клиент недоступен

2021-11-15 20:03:57.683 3268-3268/com.test.app.watch E/RCPLog: MainActivity.invokeSuspend() -> addOnFailureListener it: 17: API: Fitness.CLIENT недоступен на этом устройстве. Ошибка подключения: ConnectionResult{statusCode=INVALID_ACCOUNT, разрешение=null, сообщение=null}

2021-11-15 20:03:57.752 3268-3268/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> addOnFailureListener it: 17: API: Fitness.RECORDING_CLIENT недоступен на этом устройстве. Ошибка подключения: ConnectionResult{statusCode=INVALID_ACCOUNT, разрешение=null, сообщение=null}

2021-11-15 20:03:57.779 3268-3268/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> addOnFailureListener it: 17: API: Fitness.SESSIONS_CLIENT недоступен на этом устройстве. Ошибка подключения: ConnectionResult{statusCode=INVALID_ACCOUNT, разрешение=null, сообщение=null}

2021-11-15 20:03:57.850 3268-3268/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> Ошибка запроса поиска источников данных e com.google.android.gms.common.api.ApiException: 17: API: Fitness.SENSORS_CLIENT недоступен на этом устройстве. Ошибка подключения: ConnectionResult{statusCode=INVALID_ACCOUNT, разрешение=null, сообщение=null}

Но на галакси 9 все работает нормально и я вижу логи вроде этого "addOnSuccessListener", а не вот этого "addOnFailureListener" (тот же код):

2021-11-15 20:13:05.020 32276-32276/com.test.app.watch E/RCPLog: MainActivity.invokeSuspend() -> addOnSuccessListener

2021-11-15 20:13:05.020 32276-32276/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> addOnSuccessListener

2021-11-15 20:13:05.020 32276-32276/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> Источник данных найден: raw:com.google.heart_rate.bpm:samsung:SM-G960F:de5dc392:датчик сердечного ритма

2021-11-15 20:13:05.020 32276-32276/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> Тип источника данных: com.google.heart_rate.bpm

2021-11-15 20:13:05.021 32276-32276/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> Источник данных для TYPE_HEART_RATE_BPM найден!

2021-11-15 20:13:05.039 32276-32276/com.test.app.watch E/RCPLog: MainActivity.onCreate() -> addOnSuccessListener`

https://www.dropbox.com/s/cd6mv6eebib11gc/Logs_from_galaxy_9.txt?dl=0

https://www.dropbox.com/s/yk7q08n57amdoqo/Logs_from_watch4.txt?dl=0

Может быть, я неправильно использую Google Fit API, но почему один и тот же код работает на мобильном устройстве и не работает на часах? Может быть, Google Fit API не работает на Galaxy Watch4?

Спасибо!

1 ответ

Насколько я понимаю, в Samsung Galaxy Watch 4 нет API Google Fit (и, вероятно, никогда не будет). Вместо этого он поставляется с Samsung Health. Я не работал с Samsung Health и не знаю, есть ли API, который можно использовать на этом конкретном устройстве. Вы можете найти более подробную информацию о Samsung Health здесь и, надеюсь, выяснить, позволяет ли он вам делать те же вещи, для которых вы в настоящее время полагаетесь на Google Fit.

Возможно, в будущем вместо этого вы сможете использовать новый API Health Services, но он все еще находится на стадии альфа-тестирования.

Другие вопросы по тегам