Android:如何让用户为其他被跟踪用户创建地理围栏?

Posted

技术标签:

【中文标题】Android:如何让用户为其他被跟踪用户创建地理围栏?【英文标题】:Android: How to make user create geofence for another tracked users? 【发布时间】:2017-03-28 17:19:02 【问题描述】:

如何实施地理围栏来跟踪其他用户? 我正在开发一个跟踪家庭成员的应用程序,并且我想实现地理围栏功能,这将使用户能够为 ex: 用户 A 将跟踪用户 B 用户 A 将确定地理围栏区域,当用户 B 进入此地理围栏时,用户 A 将收到通知

我每 10 分钟检索一次用户 B 的位置,我想为用户 B 创建地理围栏,当用户 B 进入地理围栏区域时它会通知用户 A

我尝试像这段代码一样使用谷歌地理围栏:

mGeofenceList.add(new Geofence.Builder()
// Set the request ID of the geofence. This is a string to identify this
// geofence.
.setRequestId(entry.getKey())

.setCircularRegion(
        entry.getValue().latitude,
        entry.getValue().longitude,
        Constants.GEOFENCE_RADIUS_IN_METERS
)
.setExpirationDuration(Constants.GEOFENCE_EXPIRATION_IN_MILLISECONDS)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
        Geofence.GEOFENCE_TRANSITION_EXIT)
.build());

但它仅适用于用户设备“用户 A 位置”而不适用于其他用户位置。

【问题讨论】:

您找到解决方案了吗?真的有可能实现吗? 【参考方案1】:

我想您应该添加一个数据库并跟踪谁在谁身上创建了地理围栏。还将地理围栏半径和中心点存储在数据库中。为了检查用户是否在地理围栏内,计算用户位置坐标和所有地理围栏坐标的距离,然后在 5 分钟内将距离与半径进行比较。如果距离

【讨论】:

以上是关于Android:如何让用户为其他被跟踪用户创建地理围栏?的主要内容,如果未能解决你的问题,请参考以下文章

使用新的 Android API 跟踪 100 多个同步地理围栏

保持地理定位服务运行?

如何让 Flutter 应用程序在锁定/睡眠屏幕上运行(地理定位器和计时器生成器)?

地理位置点android和准确性

用于跟踪用户位置的高效后台服务

Android GeoLocation FireStore:一种在用户关闭位置共享选项后阻止谷歌服务获取用户地理点的方法