Я пытаюсь использовать Places SDK для Android, но сталкиваюсь с проблемами при попытке получить доступ к текущему месту с помощью PlaceDetectionClient.getCurrentPlace (). Я добавил неограниченный ключ API в файл манифеста и включил Places SDK в консоли Google. Мой код указан ниже, а внутри Сервиса:
try {
mPlaceDetectionClient.getCurrentPlace(null)
.addOnSuccessListener(new OnSuccessListener<PlaceLikelihoodBufferResponse>() {
@Override
public void onSuccess(PlaceLikelihoodBufferResponse likelyPlaces) {
if (likelyPlaces != null && likelyPlaces.getCount() > 0) {
int bestIndex = 0;
float bestLikelihood = likelyPlaces.get(0).getLikelihood();
for (int i = 1; i < likelyPlaces.getCount(); i++) {
if (likelyPlaces.get(i).getLikelihood() > bestLikelihood) {
bestIndex = i;
}
}
PlaceManager.setPlace(likelyPlaces.get(bestIndex).getPlace());
}
else {
Log.e(TAG, "place was null!");
}
likelyPlaces.release();
stopSelf();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "place failure!" + e);
stopSelf();
}
});
} catch (SecurityException se) {
Log.e(TAG, "SecurityException when getting place");
stopSelf();
}
Конкретная ошибка, которую я получаю, заключается в следующем и повторяется каждые пять секунд в течение двух минут:
11-08 13:41:33.426 3398-3429/domain.temp.wearapp E/JavaBinder: !!! FAILED BINDER TRANSACTION !!! (parcel size = 284)
11-08 13:41:33.432 3398-3429/domain.temp.wearapp W/GmsClient: IGmsServiceBroker.getService failed
android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:748)
at com.google.android.gms.common.internal.IGmsServiceBroker$Stub$zza.getService(Unknown Source:13)
at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService(Unknown Source:244)
at com.google.android.gms.common.api.internal.zabo.run(Unknown Source:8)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.os.HandlerThread.run(HandlerThread.java:65)
Через две минуты он перестает пытаться повторить попытку и выдает следующее исключение при вызове onFailure:
11-08 13:41:35.429 3398-3398/domain.temp.wearapp E/PlaceService: place failure!com.google.android.gms.common.api.ApiException: 8: INTERNAL_ERROR
Я часами пытался решить эту проблему путем поиска в Интернете и настройки различных вещей (изначально это был IntentService), но мне не повезло. Буду очень признателен за любую помощь!