Недавно возникла проблема, при которой добавление геозон будет случайным образом завершаться ошибкой ApiException, код состояния 13, который определен как «ОШИБКА», дополнительные подробности не предоставлены.
Обычно коды ошибок относятся только к геозонам, но это общий сбой. Кто-нибудь понял, почему GeofencingClient возвращает код состояния 13? Я не смог найти никого с такой же проблемой.
Похоже, что это влияет на более старые сборки приложения, в котором оно ранее работало без проблем.
Я дважды проверил, широта / долгота являются действительными координатами, и те же самые данные иногда могут работать без проблем. Я попытался выполнить инициализацию с использованием различных ключей API на случай, если у карт / служб определения местоположения возникла проблема, но это не имело значения.
Я также пытался измениться с
GeofencingClient(context)
до LocationServices.getGeofencingClient(context)
без изменений.
Я пытался обновить версии библиотеки, без разницы.
Типичная настройка манифеста с определенной версией сервисов воспроизведения и ключом API;
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/maps_api_key"/>
<service android:name=".GeofenceTransitionsIntentService"/>
Здесь добавлены геозоны, и к сервису намерений результаты не доходят
private val geofencingClient = GeofencingClient(context)
private val geofencePendingIntent =
PendingIntent.getService(context, 0, Intent(context, GeofenceTransitionsIntentService::class.java), PendingIntent.FLAG_UPDATE_CURRENT)
fun setGeofence(latitude: Double, longitude: Double, radius: Float, geofenceId: String) {
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
val geofenceList = listOf(buildGeofence(latitude, longitude, radius, geofenceId))
geofencingClient.addGeofences(getGeofencingRequest(geofenceList), geofencePendingIntent)?.run {
addOnFailureListener {
// Failed to add geofences
geofenceErrorListener?.invoke("Failed to add Geofence: ${it.message}")
}
}
}
}
Это не было проблемой до недавнего времени, и теперь это происходит почти в 100% случаев.
com.google.android.gms.common.api.ApiException: 13:
Редактировать: Начиная с версии PlayServices 17.7.85 (на моем устройстве), проблема, похоже, решена в конце Google