2016-04-15 118 views
1

我正在嘗試使用Google適合的歷史記錄API來獲取我在上週以天分開的步驟。我的應用程序不記錄任何數據,我只是想使用歷史API來獲取適合商店的數據。根據我在https://fit.google.com/上的帳戶,3天前我採取了151步,但是當我嘗試獲取每天採取的步驟數時,我得到0個數據集的結果。當我使用下面的代碼時,我得到7個桶,但是每個桶都包含0個數據集。我想我必須以某種方式接近這個錯誤,但我不知道在哪裏。無法從Google健身歷史記錄API獲取任何數據

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()); 

回答

0

裏有一些可能的原因:

1)您已經訂閱了這種類型的數據了嗎?

2)您的應用無法正常連接到Google服務。您是否從Google開發控制檯創建了OAuth客戶端ID?這是谷歌連接其GG Fit服務的強制性要求(請注意,如果您克隆另一個應用程序,在同一臺計算機上或不在同一臺計算機上,您需要重新創建另一個OAuth客戶端ID,還有一件事您需要兩個分開的帳戶,其中一個用於登錄Google開發控制檯以創建OAuth客戶端ID,一個用於在啓動您的應用程序後登錄,並且它會要求您登錄以接受其許可,......不知道爲什麼會這樣,但它會起作用)

注意:順便說一下,您可以搜索設備中的Google設置(設置 - > Google),在這裏您可以找到哪個應用連接到Google服務(包括GG Fit服務)。我建議您斷開所有連接並刪除OAuth客戶端ID,然後重新創建所有應用程序!

Mttdat。