我使用Play服务在Android应用中显示每日用户步骤数据和活动时间。我的API设置正常,这一切都运行正常,但我还想阅读用户的目标(Google Fit配置文件中的设置),了解每日步骤和活动时间,以便我可以显示达到的百分比。我该如何实现这一目标?我在com.google.android.gms.fitness。*中找不到任何API。
谢谢,
迈克尔
答案 0 :(得分:1)
android play-services(9.8.0)的最新变化应该是 使这成为可能。
1.将Fitness.GOALS_API添加到GoogleAPiClient
googleApiClient = new GoogleApiClient.Builder(CrossoverWatchFaceService.this)
.addConnectionCallbacks([...])
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.GOALS_API)
.useDefaultAccount()
.build();
googleApiClient.connect();
2.Retrieve Goal(s)
PendingResult<GoalsResult> pendingResult =
Fitness.GoalsApi.readCurrentGoals(
googleApiClient,
new GoalsReadRequest.Builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA)
.build());
pendingResult.setResultCallback(
new ResultCallbacks<GoalsResult>() {
@Override
public void onSuccess(@NonNull GoalsResult goalsResult) {
List<Goal> goals = goalsResult.getGoals();
//YOUR CODE HERE
}
@Override
public void onFailure(@NonNull Status status) {
Log.d(TAG, "onFailure: ");
}
});
https://developers.google.com/fit/android/using-goals
和
https://developers.google.com/android/reference/com/google/android/gms/fitness/GoalsApi
答案 1 :(得分:0)
截至目前(2015年9月22日),Google Fit API无法实现目标。
注意:ACTION_VIEW_GOAL仅允许用户查看。我也无法让它发挥作用。
答案 2 :(得分:0)
如果您想使用同步通话,请使用以下代码段进行第二部分检索目标:
PendingResult<GoalsResult> pendingResult = Fitness.GoalsApi.readCurrentGoals(
googleApiClient, new GoalsReadRequest.Builder()
.addDataType(DataType.TYPE_STEP_COUNT_DELTA)
.build());
GoalsResult goalsResult = pendingResult.await();
List<Goal> goals = goalsResult.getGoals();
// assume 1st goal is step count
double stepGoal = goals.get(0).getMetricObjective().getValue();