У меня есть функция, которая зависит от технологии GeoFencing. Есть странная проблема. При добавлении Geofence клиенту требуется много времени для добавления (посмотрите журналы) . Это странно, так как раньше оно работало довольно хорошо (без изменения кода, связанного с местоположением и всем прочим) без какой-либо задержки.
Я использую следующую зависимость:
'com.google.android.gms: игры-сервисы местоположение: 16.0.0'
@RequiresPermission(Manifest.permission.ACCESS_FINE_LOCATION)
fun addGeoFences(
geoFences: ArrayList<Geofence>,
onSuccess: () -> Unit = {},
onFailure: (Exception) -> Unit = {}
): Boolean {
if (isAddingGeofence) {
GlobalLoggerUtils.showLog(TAG, "isAddingGeofence: $isAddingGeofence")
return false
}
GlobalLoggerUtils.showLog(TAG, "addGeoFences()")
if (geoFences.size == 0) {
return false
}
isAddingGeofence = true
geoFencingClient
.addGeofences(
getGeoFencingRequest(geoFences),
geoFencePendingIntent
).addOnSuccessListener { result ->
isAddingGeofence = false
}
.addOnFailureListener { exception ->
isAddingGeofence = false
}
.addOnCanceledListener {
isAddingGeofence = false
}
return true
}
2019-05-30 12:43:29.716 I/: addGeoFences()
2019-05-30 12:44:00.602 I/: isAddingGeofence: true
2019-05-30 12:44:02.424 I/: isAddingGeofence: true
2019-05-30 12:44:03.525 I/: isAddingGeofence: true
2019-05-30 12:44:04.975 I/: isAddingGeofence: true
2019-05-30 12:44:06.541 I/: isAddingGeofence: true
2019-05-30 12:48:18.384 I/: add success >>> result: null
2019-05-30 12:48:18.393 I/: add success >>> requestIds: XYZ
Дайте мне знать, если что-нибудь требуется добавить в контексте этой проблемы. Добавление Geofence выполняется в соответствии с официальной документацией по Android .
Редактировать № 1: 05 июня 2019
Похоже, это происходит только в сборке разработки. Прекрасно работает в
Выпуск сборки, установленной из магазина Play.