当应用程序不在前台或被杀死时如何使地理围栏工作?

how to make geofence work when app is not in foreground or it is killed?

我正在开发一个应用程序,我必须在其中实现一项功能,即当用户输入具有特定半径的特定范围或位置时,例如在地理围栏中。然后它应该发送也在客户端应用程序中而不是 FCM 中的通知。我尝试了多种解决方案,但没有用。因为 Android O 。后台任务限制。如何在没有 Foreground 的情况下实现此功能,否则会显得很烦人?请如果有人有任何想法请回复。提前致谢。

客户端代码

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)
    }

我已经更新了我使用的代码,但是当应用程序被杀死时它仍然无法工作。

通过使用 Google API 注册地理围栏,它们也会自动从后台调用。您可以在 com.google.android.gms.location.

中找到它

GeofencingClient.addGeofences(GeofencingRequest, PendingIntent)就是你所需要的。