0

我正在为 watch 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, resolution=null, message=null}。

我接受了 google fit 传感器的所有许可。我用的是 Galaxy watch4 classic (sm-r880)(在俄罗斯买的)。

我尝试在 Galaxy s9 (sm-g960f) 上构建并启动此应用程序,它运行良好,启动相同代码时我没有收到此错误,我可以创建客户端并订阅传感器。我在手机和手表上使用了同一个谷歌帐户。

我准备了通过 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, resolution=null, message=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, resolution=null, message=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, resolution=null, message=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, resolution=null, message=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上不起作用?

谢谢!

4

1 回答 1

2

据我了解,三星 Galaxy Watch 4 没有 Google Fit API(可能永远不会)。相反,它随三星健康一起提供。我没有与 Samsung Health 合作过,不知道是否有可以在该特定设备上使用的 API。您可以在此处找到有关 Samsung Health 的更多详细信息,并希望了解它是否允许您执行您目前依赖 Google Fit 执行的相同操作。

将来您可能可以改用新的Health Services API,但这仍处于 alpha 阶段。

于 2022-01-13T20:51:14.967 回答