Android 无法从Google Fit历史API获取任何数据

Android 无法从Google Fit历史API获取任何数据,android,google-fit,google-fit-sdk,Android,Google Fit,Google Fit Sdk,我正在尝试使用GoogleFitHistoryAPI来获取我在过去一周内所采取的步骤,以天为单位。我的应用程序没有记录任何数据,我只想使用历史api获取fit store上的数据。根据我在上的帐户,3天前我执行了151个步骤,但当我尝试获取每天执行的步骤数时,我得到的结果是0个数据集。当我使用下面的代码时,我得到了7个bucket,但每个bucket都包含0个数据集。我想我一定是走错路了,但我不知道在哪里 private class GetData extends AsyncTask<V

我正在尝试使用GoogleFitHistoryAPI来获取我在过去一周内所采取的步骤,以天为单位。我的应用程序没有记录任何数据,我只想使用历史api获取fit store上的数据。根据我在上的帐户,3天前我执行了151个步骤,但当我尝试获取每天执行的步骤数时,我得到的结果是0个数据集。当我使用下面的代码时,我得到了7个bucket,但每个bucket都包含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());
私有类GetData扩展异步任务{
受保护的Void doInBackground(Void…参数){
Calendar cal=Calendar.getInstance();
现在日期=新日期();
校准设定时间(现在);
long-endTime=cal.getTimeInMillis();
cal.add(日历周,每年,-1);
long startTime=cal.getTimeInMillis();
DataReadRequest=newDataReadRequest.Builder()
.aggregate(DataType.TYPE\u STEP\u COUNT\u DELTA,DataType.aggregate\u STEP\u COUNT\u DELTA)
.bucketByTime(1,时间单位:天)
.setTimeRange(开始时间、结束时间、时间单位.毫秒)
.build();
System.out.println(“此处”);
DataReadResult DataReadResult=
Fitness.HistoryApi.readData(mClient,readRequest).wait(1,TimeUnit.MINUTES);
System.out.println(dataReadResult.getbucket().size());
System.out.println(dataReadResult.getDataSets().size());

有一些可能的原因:

1) 您订阅了这类数据了吗

2) 你的应用程序未正确连接到google服务。你是否从google develop console创建了OAuth客户端ID?这是google连接到其GG Fit服务的指令中的强制要求(请注意,如果你在同一台计算机上克隆了另一个应用程序,无论是否在同一台计算机上,你都需要重新创建另一个OAuth客户端ID,还有一件事你需要两个独立的帐户,一个登录Google develop console创建OAuth客户端ID,另一个在启动你的应用程序后登录,它会要求你登录以接受它的许可,…不确定w。)为什么它是,但它会工作)

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


Mttdat.

有一些可能的原因:

1) 您订阅了这类数据了吗

2) 你的应用程序未正确连接到google服务。你是否从google develop console创建了OAuth客户端ID?这是google连接到其GG Fit服务的指令中的强制要求(请注意,如果你在同一台计算机上克隆了另一个应用程序,无论是否在同一台计算机上,你都需要重新创建另一个OAuth客户端ID,还有一件事你需要两个独立的帐户,一个登录Google develop console创建OAuth客户端ID,另一个在启动你的应用程序后登录,它会要求你登录以接受它的许可,…不确定w。)为什么它是,但它会工作)

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

Mttdat