как заставить работать геозону, когда приложение не на переднем плане или оно убито?

Я работаю над приложением, в котором мне нужно реализовать функцию, когда пользователь входит в определенный диапазон или местоположение с определенным радиусом, например, в Geofence. Затем он должен отправить уведомление, которое также находится в клиентском приложении, а не в FCM. Я пробовал несколько решений, но они не работают. начиная с Android О. Ограничение фоновой задачи. Как реализовать эту функцию без переднего плана, иначе это будет раздражать? Пожалуйста, если у кого-то есть идеи, ответьте. Заранее спасибо.

Код для клиента

geofencingClient.addGeofences( geoFencingReq(location!!.latitude,location.longitude,name), geofencePendingIntent)

Ожидание намерения ->

val geofencePendingIntent: PendingIntent by lazy {
        val intent = Intent(contextt, GeofenceTransitionsIntentService::class.java)
        // We use FLAG_UPDATE_CURRENT so that we get the same pending intent back when calling
        // addGeofences() and removeGeofences().
        PendingIntent.getService(contextt, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)
    }

Я обновил код, который я использовал, но он все еще не работает, когда приложение убито.


person Karsh Soni    schedule 27.07.2018    source источник


Ответы (1)


При регистрации Geofence в Google API они также автоматически вызываются из фона. Вы можете найти его в com.google.android.gms.location.

GeofencingClient.addGeofences(GeofencingRequest, PendingIntent) это то, что вам нужно.

person Antonio Vlasic    schedule 27.07.2018
comment
Спасибо за ваш ответ. Я свяжусь с вами после проверки этого решения, спасибо, @AntonioVlasic - person Karsh Soni; 27.07.2018
comment
Я обновил свой вопрос и добавил код. это не работает. @AntonioVlasic - person Karsh Soni; 27.07.2018