android - 无法使用适用于 Android 的 Google Fit 跟踪位置 (TYPE_LOCATION_SAMPLE)
问题描述
我正在尝试使用 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
只是为了看看我是否能以这种方式工作。查询历史时我仍然无法获得任何数据,但距离增量已根据我添加的位置发生变化,因此发生了一些事情。但我仍然无法从历史中获得实际位置。
解决方案
您只能读取您的应用写入的位置数据。
这在公共数据类型文档的异常部分中进行了描述。
推荐阅读
- javascript - 接收来自 Express.js sendFile() 的响应是损坏的 PDF
- asp.net - 从服务器接收结果时发生传输级错误。(提供者:TCP 提供者,错误:0 - 成功)
- typescript - 解构由另一个泛型制成的泛型类型
- elasticsearch - 在具有单个 must/should/must_not 的查询中需要“bool”吗?
- javascript - 将值附加到 LocalStorage
- python - 使用数据框转换文本文件
- google-analytics - 如何在 Google Analytics 中设置 Google Workspace Marketplace 应用列表事件跟踪
- mysql - 如何按此表分组?
- pyspark - 在 Pyspark 中将多行组合为 JSON 对象
- python - 解析由多个 JSON 对象组成的字符串一起运行