2016-04-15 6 views
1

Ich versuche, die google fit history API zu verwenden, um die Schritte zu erhalten, die ich innerhalb der letzten Woche bis zum Tag durchgeführt habe. Meine App zeichnet keine Daten auf, ich möchte nur die History-API verwenden, um die Daten im Fit Store abzurufen. Laut meinem Konto unter https://fit.google.com/ habe ich vor 3 Tagen 151 Schritte genommen, aber wenn ich versuche, die Anzahl der Schritte jeden Tag zu bekommen, bekomme ich ein Ergebnis mit 0 Datensätzen zurück. Wenn ich den folgenden Code verwende, bekomme ich 7 Buckets zurück, aber jeder dieser Buckets enthält 0 Datensätze. Ich denke, ich muss mich irgendwie mit diesem Fehler befassen, aber ich bin mir nicht sicher, wo.Ich kann keine Daten von Google Fit History-API abrufen

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

Antwort

0

Es sind einige mögliche Ursachen:

1) Haben Sie diese Art von Daten noch abonniert?

2) Ihre App wird nicht ordnungsgemäß mit Google-Dienst verbunden. Haben Sie die OAuth-Client-ID von der Google-Entwicklungskonsole erstellt? Dies ist obligatorisch, wenn Google eine Verbindung zu seinem GG Fit-Dienst herstellt. (Bitte beachten Sie, dass Sie, wenn Sie eine andere App auf demselben Computer klonen oder nicht, eine andere OAuth-Client-ID neu erstellen müssen und noch zwei getrennte Konten benötigen , eine, um sich einzuloggen Google Console zum Erstellen OAuth Client ID und eine zum Anmelden nach dem Start der App, und es werden Sie aufgefordert, sich anzumelden, um ihre Erlaubnis zu akzeptieren, ... nicht sicher, warum es ist, aber es würde funktionieren)

Hinweis: Btw können Sie eine Suche über Google-Einstellung auf Ihrem Gerät (Einstellung -> Google), Hier finden Sie, welche App mit Google-Dienst verbindet (einschließlich GG Fit-Service). Ich empfehle Ihnen, alle zu trennen und OAuth Client ID, Ihre App zu löschen, und dann alle neu zu erstellen!

Mttdat.