Android 中的地理围栏无法根据用户的当前位置工作

问题描述 投票:0回答:0

想要实现 -> 当用户向前移动/进入位置时,所有最近的 200 米地理围栏都应该触发。

注意 -> 我们将根据他们的名字有多个经/纬度位置

用例 -> 如果用户添加汉堡王 -> 所有汉堡王位置都将添加到服务器中 & 用户获取位置输入通知仅最近的 200 米汉堡王仅且仅进入该商店。

Whats going on currently -> 在我的应用程序中,我想根据用户在不同位置添加多个地理围栏,并且当用户向前移动到该区域时,地理围栏将根据其位置进行排序,并且将触发前 100 个地理围栏。 但是发生了什么(或者我在想)通过如下所示的位置请求更新位置

mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, Looper.myLooper());

更新位置后,我将删除所有地理围栏并再次添加基于最近位置排序的新地理围栏

mLocationCallback = new LocationCallback() {
        @Override
        public void onLocationResult(LocationResult locationResult) { -- }

如果我像下面这样选择我的 GeofencingRequest 构建器,这会导致触发多个地理围栏->

builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER);

我发现解决这个问题的方法是像下面这样设置我的 GeofencingRequest

builder.setInitialTrigger(0);

& 添加 10 秒的请求位置更新延迟

所以如果用户已经在地理围栏中,这将不会触发,但只会在进入地理围栏时触发。

问题 -> 主要问题是有时位置提醒可以正常工作,但有时却不能。 & 有时它在我的手机(one plus nord 2)上可以正常工作,但在我朋友的手机(三星 S23)上不能正常工作

android-geofence proximity
© www.soinside.com 2019 - 2024. All rights reserved.