标签: google-fit-api

尝试访问 Google Fit API 时出现异常 - 用户必须登录才能进行此 API 调用

我正在尝试设置一个在 WearOS 上运行的可穿戴应用程序(适用于华为 Watch 2),以将心率 (BPM) 持续提供到 Google Fit 帐户中,该帐户会被读入另一个智能手机应用程序中。

当我尝试设置帐户并访问数据时出现问题,如下所示:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.BODY_SENSORS)
        != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.BODY_SENSORS),GOOGLE_FIT_PERMISSIONS_REQUEST_CODE)
}

fitnessOptions = FitnessOptions.builder()
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_WRITE)
.build()

account = GoogleSignIn.getAccountForExtension(this, fitnessOptions)
if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
    GoogleSignIn.requestPermissions(
        this, // your activity
        GOOGLE_FIT_PERMISSIONS_REQUEST_CODE, // e.g. 1
        account,
        fitnessOptions);
} else {
    accessGoogleFit()
}
timer.scheduleAtFixedRate(
    object : TimerTask() {
        override fun run() {
            Log.i("[TimerTask]", "Retrieving data..")
            accessGoogleFit()
            Log.i("[Account]", "" + account.email)

        }
    },0, 1000
) …
Run Code Online (Sandbox Code Playgroud)

android kotlin google-fit wear-os google-fit-api

13
推荐指数
1
解决办法
3606
查看次数

以与 Google Fit 应用程序相同的方式获取 Google Fit 历史记录(Google Fit 自动记录活动)

我正在努力显示与 Google Fit 应用程序相同的活动历史记录。我在会话方面做得很好,但我无法正确掌握自动记录的活动。就像示例中的这两个顶级步行。

在此处输入图片说明

我认为一切都归结DataReadRequest为建造的方式。我得到的最接近的是:

DataReadRequest.Builder()
                            .aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)
                            .bucketByActivitySegment(5, TimeUnit.MINUTES)
                            .setTimeRange(dateFrom.millis, dateTo.millis, TimeUnit.MILLISECONDS)
                            .build()
Run Code Online (Sandbox Code Playgroud)

故意排除少于 5 次步行。结果相似,但结果略有不同。持续时间和大卡减少约 20%。有时它真的很疯狂,将活动切成小块。我在 Google Fit 中走了 2 次,最终在我的应用程序中走了 4 次,这与 Google Fit 中的 2 次不相加。我试图反编译 Google Fit 应用程序以“借用”请求设置,但该应用程序被很好地混淆了。:)

有人实现了吗?

android google-fit google-fit-api

11
推荐指数
1
解决办法
190
查看次数

使用 flutter 的带有每日步数计数器的计步器

我正在尝试使用 flutter 构建一个基本的健身应用程序。该应用程序有两个主要功能:

  1. 每日步数计数器
  2. 历史数据图表(每天的步数)

我使用计步器插件从手机传感器检索数据。我的问题是,该插件只能发送自上次重新启动以来的连续步数计数 ,这意味着如果用户几天没有打开我的应用程序,我不知道他每天走了多少步,只有他的总步数做过。我想过让我的应用程序在后台运行,但这会浪费电池

Ps 我阅读了Masky 的Implementing pedometer in flutter文章,但这并没有解决我的问题。

感谢您的任何帮助:)

flutter pedometer google-fit-api

5
推荐指数
1
解决办法
7866
查看次数

Google Fit REST 心率查询使用什么数据源 ID?

我正在尝试使用Google Fit REST API检索每日心率汇总数据,但我很困难,因为要么我遗漏了某些内容,要么文档似乎非常不完整。我已经通过以下几个可用示例之一成功地检索了每日总步数:

请求网址

https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate

请求正文

{
  "aggregateBy": [{
    "dataTypeName": "com.google.step_count.delta",
    "dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1438705622000,
  "endTimeMillis": 1439310422000
}
Run Code Online (Sandbox Code Playgroud)

我找不到任何读取心率的示例,因此我尝试对其进行修改以获取心率。我发现这个数据类型列表具有以下数据类型:com.google.heart_rate.summary但没有任何关于dataSourceId应该是什么的信息。我尝试忽略它,但收到此错误:

找不到默认数据源:com.google.heart_rate.summary

有谁知道我需要使用什么 dataSourceId,或者有关于数据源的任何不错的文档的链接?

rest google-fit heartrate google-fit-api

1
推荐指数
2
解决办法
2724
查看次数