无法从Google Fit History API获取任何数据

时间:2016-04-15 18:22:20

标签: android google-fit google-fit-sdk

我正在尝试使用google fit history api来获取我在过去一周内按天分隔的步骤。我的应用程序不记录任何数据,我只想使用历史API来获取fit商店的数据。根据我在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());

1 个答案:

答案 0 :(得分:0)

有一些可能的原因:

1)您是否订阅了此类数据?

2)您的应用与Google服务无法正常连接。您是否从Google开发控制台创建了OAuth客户端ID?这是谷歌连接到GG Fit服务的必修课(请注意,如果您在同一台计算机上克隆另一个应用程序,则需要重新创建另一个OAuth客户端ID,还有一件事你需要需要2个分隔帐户,一个用于登录Google开发控制台以创建OAuth客户端ID,另一个用于在启动应用程序后登录,并且会要求您登录以接受其权限,...不确定为什么会这样做是,但它会工作)

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

Mttdat。