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

时间:2016-11-14 23:13:24

标签: android android-location android-geofence

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

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

我尝试像这样的代码使用Google Geofence:

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 个答案:

答案 0 :(得分:2)

我想你应该添加一个数据库,并跟踪谁为谁创建了地理围栏。还将地理围栏半径和中心点存储在数据库中。为了检查用户是否在地理围栏中,计算距用户位置坐标和所有地理围栏坐标的距离,然后在5分钟跨度内比较距离与半径。如果距离<半径,用户在外面的其他地方。如果用户在内部设置标志以避免重复通知。如果用户外出重置标志。我认为这应该有用。