【问题标题】:Unable to track location (TYPE_LOCATION_SAMPLE) with Google Fit for Android无法使用适用于 Android 的 Google Fit 跟踪位置 (TYPE_LOCATION_SAMPLE)
【发布时间】: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


    【解决方案1】:

    您只能读取您的应用编写的位置数据。

    这在公共数据类型文档的Exceptions 部分中有描述。

    【讨论】:

    • 谢谢。我在查询历史的同一个应用程序中订阅了 TYPE_LOCATION_SAMPLE - 所以不应该没问题吗?
    猜你喜欢
    • 2017-03-03
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多