如何解决如何从Android中的Google FIT获取历史距离日期?
我试图通过将开始时间和结束时间传递给 google FIT android API 来获取用户的历史距离数据。
/**
* Returns a {@link DataReadRequest}.
*/
public DataReadRequest queryfitnessStepData(String startTime,String endTime) {
long startVal = convertDateStringtoEpoch(startTime,true);
long endVal = convertDateStringtoEpoch(endTime,false);
DataSource datasource = new DataSource.Builder()
.setAppPackageName("com.google.android.gms")
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_DERIVED)
.setStreamName("distance_delta")
.build();
return new DataReadRequest.Builder()
.aggregate(datasource)
.bucketByTime(1,TimeUnit.DAYS)
.setTimeRange(startVal,endVal,TimeUnit.MILLISECONDS)
.build();
}
private void readHistorydistanceData(String strDate,String endDate) {
readRequest = queryfitnessStepData(strDate,endDate);
fitnessOptions fitnessOptions =
fitnessOptions.builder()
.addDataType(DataType.TYPE_disTANCE_DELTA,fitnessOptions.ACCESS_READ)
.addDataType(DataType.AGGREGATE_disTANCE_DELTA,fitnessOptions.ACCESS_READ)
.build();
if (GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(requireActivity()),fitnessOptions)) {
fitness.getHistoryClient(requireActivity(),Objects.requireNonNull(GoogleSignIn.getLastSignedInAccount(requireActivity())))
.readData(readRequest)
.addOnSuccessListener(
new OnSuccessListener<DataReadResponse>() {
@Override
public void onSuccess(DataReadResponse dataReadResponse){
//parse data
}
}
}
}
但是,在运行此代码时,我无法获得与用户距离相关的任何数据。 我拥有所有权限,例如 ACCESS_FINE_LOCATION 和 ACTIVITY_RECOGNITION。
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。