【发布时间】:2021-06-22 16:24:51
【问题描述】:
我从 google fit api 收到此错误。它不会每次都发生,但如果我收到此错误,那么在我卸载应用程序之前我无法获取我的步数数据。我为我的应用正确配置了 OAuth 2.0 客户端身份验证。但有时我仍然会收到此错误
“com.google.android.gms.common.api.ApiException: 8: 与 Google Play 服务的连接丢失”
当我从谷歌文档中调查它时,它告诉我:
https://developers.google.com/android/reference/com/google/android/gms/common/api/CommonStatusCodes public static final int INTERNAL_ERROR
正如文档所说,当我尝试在 onfailure 方法上连接 googlefit 时,没有发生任何事情,仍然面临这个问题。
发生内部错误。重试应该可以解决问题。 常数值:8
这里是代码块,有时会触发 onfailure 方法
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_DISTANCE_DELTA, DataType.AGGREGATE_DISTANCE_DELTA)
.bucketByTime(1, TimeUnit.DAYS)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
Fitness.getHistoryClient(MainActivity.activity, GoogleSignIn.getLastSignedInAccount(MainActivity.activity))
.readData(readRequest)
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Crashlytics.log(Log.ASSERT, "fail :", e.toString());
}
})
.addOnSuccessListener(new OnSuccessListener<DataReadResponse>()
{
@Override
public void onSuccess(DataReadResponse dataReadResponse)
{
for (Bucket bucket : dataReadResponse.getBuckets())
{
for (DataSet dataSet : bucket.getDataSets())
{
for (DataPoint dataPoint : dataSet.getDataPoints())
{
User.current().userFitnessData.totalDistance = dataPoint.getValue(dataPoint.getDataType().getFields().get(0)).asFloat();
}
}
}
Crashlytics.log(Log.ASSERT, "Todays Steps", User.current().userFitnessData.getTodaysSteps() + "");
if (callBack != null)
callBack.onDistanceDataReceived();
}
});
【问题讨论】:
-
API 的错误是最严重的错误...我会尝试调查正在发布的 HTTP 请求以及您得到的响应。
标签: android google-fit