我正在为 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上不起作用?
谢谢!