GeofencingClient занимает много времени в добавлении геозон - PullRequest
0 голосов
/ 30 мая 2019

У меня есть функция, которая зависит от технологии 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.

1 Ответ

0 голосов
/ 01 июня 2019

Если это Android 8.0+, имейте в виду, что есть ограничение на местоположение в фоновом режиме, которое также применяется к API геозон * введите описание ссылки здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...