2017-07-05 83 views
0

我正在嘗試從Google Fit獲取Sleep as Android數據,並在我自己的Android應用程序中使用。我從帖子中看到,Sleep作爲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帖子,但直到現在還沒有成功。

[問題]

我怎樣才能記錄健身數據來自谷歌適合睡眠的活動?

[編輯]

這是睡眠的截圖作爲Android的數據,谷歌飛度的時間表

Google Fit Sleep data

+0

您是否將「Sleep as Android」和「Google Fit Platform」的數據進行同步。您可以安裝[來自Playstore的[Google健身應用]](https://play.google.com/store/apps/details?id=com.google.android.apps.fitness)並查看您是否可以看到睡眠數據獲取反映在「Google健身」應用程序 –

+0

是的,它已經是這種情況。讓我更新我的帖子,將Android Sleep中的數據屏幕截圖添加到Google健身中。但是,我怎樣才能以編程方式獲得這些數據? –

+0

你可以粘貼你得到的輸出 –

回答

0

最後,我得到了它。感謝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(); 
相關問題