如何从服务器检索Google Fit Step数据?

时间:2017-12-20 03:33:53

标签: android kotlin google-fit

我最近开始使用GoogleFit API。我已经浏览了几个关于这个问题的stackoverflow帖子,但还没有看到一个对我有用的好答案。大多数答案都指向过时的API。

我想完成的任务很简单: 从服务器中读取每日步数。

理想情况下,我希望检索的步数与choice上显示的相匹配,但我无法这样做。

这是我的设置:

请求访问权限

  val fitnessOptions = FitnessOptions.builder()
                    .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                    .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                    .build()

            if (GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
                Toast.makeText(this, "Already Has permission", Toast.LENGTH_SHORT).show()
            } else {

                GoogleSignIn.requestPermissions(
                        this, // your activity
                        FIT_REQUEST_CODE,
                        GoogleSignIn.getLastSignedInAccount(this),
                        fitnessOptions)
            }

据我了解,下面的方法应该与服务器联系并检索步数。 根据文档,有readDailyTotalFromLocalDevice(...)方法,所以如果我想从设备获取数据,我会使用该方法。但这两种方法似乎都返回了相同的确切值。

查询数据

Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this))
                .readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
                .addOnSuccessListener {
                    tvResult.text = "Steps: ${it.dataPoints[0].getValue(Field.FIELD_STEPS)}"
                }
                .addOnFailureListener {
                    tvResult.text = "Error"
                }

对于上下文:https://fit.google.com/上的步数(在撰写本文时) 6000 ,我从上述方法中获得的值是 4 此外,我没有看到在GoogleAPI控制台上为健身api生成任何流量,这证实了请求永远不会发送到服务器的假设。

我尝试过的(没有成功):

  • 手动构建请求并显式添加启用服务器 查询
  • 为我尝试阅读的相同数据类型添加订阅

如何阅读存储在云健身数据存储中的每日步数数据?

0 个答案:

没有答案