Я получаю эту ошибку от Google Fit API. Это не происходит каждый раз, но если я получаю эту ошибку, то я не могу получить свои данные шага, пока я не удалю приложение. Я правильно настроил аутентификацию клиента OAuth 2.0 для своего приложения. Но иногда все равно я получаю эту ошибку
"com.google.android.gms.common.api.ApiException: 8: соединение с сервисами Google Play потеряно"
когда я исследую его из документа Google, он говорит мне, что:
https://developers.google.com/android/reference/com/google/android/gms/common/api/CommonStatusCodes
public static final int INTERNAL_ERROR
Как сказано в документе, когда я пытаюсь подключить googlefit по методу onfailure, тогда ничего не происходит и все еще сталкивается с этой проблемой.
Произошла внутренняя ошибка. Повторная попытка должна решить проблему.
Постоянное значение: 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();
}
});