Google-Fit - 当录制客户端订阅本地设备DataSource时如何阅读

时间:2018-03-20 11:24:21

标签: android google-fit

我正在使用Google Fit Android API来读取用户当前手机的步数和距离。为此,我订阅了DataSource,如下所示:

val dataSource = DataSource.Builder()
  .setDevice(Device.getLocalDevice(this))
  .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
  .setType(DataSource.TYPE_DERIVED)
  .build()

Fitness.getRecordingClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .subscribe(dataSource)
    .addOnSuccessListener {
        // access step data
    }
    .addOnFailureListener {
       // handle exception
    }

由于我只想从当前手机获取数据,我使用上面的代码。但是当我开始使用HistoryClient访问数据时,它不会提供任何数据。

以下是我访问步骤数据的代码:

Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .readDailyTotalFromLocalDevice(DataType.TYPE_STEP_COUNT_DELTA)
      .addOnSuccessListener { displayData(it) }
      .addOnFailureListener { Log.d("MainActivity", "Step Count Reading Exception: $it") }

但如果我在录制客户端订阅代码中使用DataType而不是DataSource,则会正确记录数据。

DataSource的代码是否正确?我是否需要以不同的方式阅读DataSource的历史数据?

0 个答案:

没有答案
相关问题