【发布时间】:2020-02-14 09:03:04
【问题描述】:
我正在尝试使用 Android 上的 Google Fit 记录客户端来跟踪位置,但我不确定是否可以使用 TYPE_LOCATION_SAMPLE。记录步数 (TYPE_STEP_COUNT_DELTA) 和活动段 (TYPE_ACTIVITY_SEGMENT) 工作正常,但订阅 TYPE_LOCATION_SAMPLE 似乎没有任何作用。
我可以成功订阅数据类型 TYPE_LOCATION_SAMPLE 并且我有一个数据源,但是如果我向历史客户端查询数据,那里什么都没有。同样,这适用于步骤和活动 - 只是不适用于位置。
我已确定已授予位置权限。我已经四处移动以改变位置。我也试过GoogleSignIn.getAccountForExtension,还是没有。像这样记录位置是不可能的,还是我的方法不对?
我正在订阅这样的位置数据:
Fitness
.getRecordingClient(activity, GoogleSignIn.getLastSignedInAccount(activity.applicationContext)!!)
.subscribe(DataType.TYPE_LOCATION_SAMPLE)
我正在请求这样的历史数据:
val readRequest = DataReadRequest.Builder()
.read(DataType.TYPE_LOCATION_SAMPLE)
.setTimeRange(from.timeInMillis, to.timeInMillis, TimeUnit.MILLISECONDS)
.build()
Fitness
.getHistoryClient(activity, GoogleSignIn.getLastSignedInAccount(activity.applicationContext)!!)
.readData(readRequest)
.addOnSuccessListener { dataReadResponse ->
//returns 1 empty dataset
}
更新:我已经尝试使用 HistoryClient.insertData 手动插入位置,只是为了看看我是否能以这种方式工作。查询历史时我仍然无法获得任何数据,但距离增量已根据我添加的位置发生变化,因此发生了一些事情。但我仍然无法从历史中获取实际的位置。
【问题讨论】:
标签: android geolocation google-fit