2017-07-05 9 views
0

私は確かに自分のアンドロイドアプリケーションでGoogle FitのSleep as Androidデータを取得しようとしています。私は記事から、AndroidデータがGoogle Fitに保存されていることを確認し、他のサードパーティのアプリでも閲覧できるようにしています。これを達成するために、私は履歴セッションを使用します。これは、睡眠データを読み取るためのサンプルコードです:Google Fitからサードパーティアプリケーション(Sleep as Android)データを取得

public static DataReadRequest queryFitnessData() { 
    // [START build_read_data_request] 
    // Setting a start and end date using a range of 1 week before this moment. 
    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(); 

    java.text.DateFormat dateFormat = getDateInstance(); 
    Log.i(TAG, "Range Start: " + dateFormat.format(startTime)); 
    Log.i(TAG, "Range End: " + dateFormat.format(endTime)); 

    DataReadRequest readRequest = new DataReadRequest.Builder() 
      .read(DataType.TYPE_ACTIVITY_SEGMENT) 
      .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
      .build(); 
    // [END build_read_data_request] 

    return readRequest; 
} 

そして、そのクエリを実行するには:

DataReadRequest readRequest = queryFitnessData(); 
DataReadResult dataReadResult = Fitness.HistoryApi.readData(
     mClient, readRequest).await(1, TimeUnit.MINUTES); 
printData(dataReadResult); 

は私の推測では、私は何かが足りないんだということです。私もthisの記事を同じトピックに投稿しましたが、今まで成功していません。

[質問]

どのように私は、Googleのフィットから睡眠活動のためのフィットネスデータを記録し得ることができますか?

[EDIT]

これは最後に、私はそれを得たグーグルフィットのタイムライン

Google Fit Sleep data

+0

「Sleep as Android」のデータを「Google Fit Platform」と同期していますか? [Google Fit app from Playstore](https://play.google.com/store/apps/details?id=com.google.android.apps.fitness)をインストールして、スリープデータが表示されるかどうかを確認できますか「Google Fit」アプリに反映されます –

+0

はい、既にそうです。 Android用のスリープからGoogle Fitにデータのスクリーンショットを追加して投稿を更新してみましょう。しかし、これらのデータをプログラムで取得するにはどうすればよいですか? –

+0

取得している出力を貼り付けることはできますか –

答えて

0

でAndroidのデータとして睡眠のスクリーンショットです。 UrbandroidチームのMartin Stavaに感謝します。

final SessionReadRequest.Builder sessionBuilder = new SessionReadRequest.Builder() 

     .setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS) 
     .read(DataType.TYPE_ACTIVITY_SEGMENT) 
     .readSessionsFromAllApps() 
     .enableServerQueries(); 

final SessionReadRequest readRequest = sessionBuilder.build(); 

// Invoke the Sessions API to fetch the session with the query and wait for the result 
// of the read request. 
SessionReadResult sessionReadResult = SessionsApi.readSession(apiClient, readRequest).await(120, TimeUnit.SECONDS); 

Status status = sessionReadResult.getStatus(); 
関連する問題