1

我正在尝试使用 google fit history api 来获取我在上周采取的步骤,按天分开。我的应用程序没有记录任何数据,我只是想使用历史 api 来获取 fit store 上的数据。根据我在https://fit.google.com/上的帐户,我在 3 天前走了 151 步,但是当我尝试获取每天所走的步数时,我得到了一个包含 0 个数据集的结果。当我使用以下代码时,我得到了 7 个存储桶,但每个存储桶都包含 0 个数据集。我想我一定是在以某种方式接近这个错误,但我不确定在哪里。

 private class GetData extends AsyncTask<Void, Void, Void> {
    protected Void doInBackground(Void... params) {
        Calendar cal = Calendar.getInstance();
        Date now = new Date();
        cal.setTime(now);
        long endTime = cal.getTimeInMillis();
        cal.add(Calendar.WEEK_OF_YEAR, -1);
        long startTime = cal.getTimeInMillis();


        DataReadRequest readRequest = new DataReadRequest.Builder()
                .aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
                .bucketByTime(1, TimeUnit.DAYS)
                .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
                .build();

            System.out.println("here");
        DataReadResult dataReadResult =
                Fitness.HistoryApi.readData(mClient, readRequest).await(1, TimeUnit.MINUTES);
        System.out.println(dataReadResult.getBuckets().size());
        System.out.println(dataReadResult.getDataSets().size());
4

1 回答 1

0

有一些可能的原因:

1)您订阅了此类数据吗?

2) 您的应用无法与谷歌服务正确连接。您是否从 Google 开发控制台创建了 OAuth 客户端 ID?这是 google 强制连接到其 GG Fit 服务的指令(请注意,如果您在同一台计算机上克隆另一个应用程序,您需要重新创建另一个 OAuth 客户端 ID,并且您还需要 2 个单独的帐户,一个用于登录 Google 开发控制台以创建 OAuth 客户端 ID,另一个用于在启动您的应用程序后登录,它会要求您登录以接受其许可,......不知道为什么会这样,但它会工作)

注意:顺便说一句,您可以在您的设备中搜索有关 Google 设置(设置 --> Google),在这里您可以找到连接到 google 服务(包括 GG Fit 服务)的应用程序。我建议您断开所有连接并删除 OAuth 客户端 ID、您的应用程序,然后重新创建所有这些!

月票。

于 2017-06-01T08:50:14.770 回答