在不同用户上创建地理围栏

Creating Geofence on different Users

提问人:umang gala 提问时间:11/15/2016 最后编辑:Minh Buiumang gala 更新时间:1/20/2019 访问量:707

问:

自从用户从谷歌帐户登录以来,我们就可以访问他/她。以下代码在当前登录的用户上创建地理围栏。例如,用户 A 登录到应用程序,我们可以访问 ,因此使用函数创建地理围栏,该函数将参数作为 mGoogleApiClient(当前用户的 GoogleApiClient)。GoogleApiClientGoogleApiClientaddGeofences

如何在用户 B 上创建地理围栏?我怎样才能访问他/她的 GoogleApiClient 以在用户 B 上创建地理围栏?简而言之,我们如何在其他用户上创建地理围栏?请帮忙!

public void addGeofencesButtonHandler(View view) {
    if (!mGoogleApiClient.isConnected()) {
        Toast.makeText(this, getString(R.string.not_connected), Toast.LENGTH_SHORT).show();
        return;
    }

    try {
        populateGeofenceList();// creates geofence from list 
        LocationServices.GeofencingApi.addGeofences(
                mGoogleApiClient,
                // The GeofenceRequest object.
                getGeofencingRequest(),
                // A pending intent that that is reused when calling removeGeofences(). This
                // pending intent is used to generate an intent when a matched geofence
                // transition is observed.
                getGeofencePendingIntent()
        ).setResultCallback(this); // Result processed in onResult().
    } catch (SecurityException securityException) {
        // Catch exception generated if the app does not use ACCESS_FINE_LOCATION permission.
        logSecurityException(securityException);
    }
}
Java MySQL Android-Studio 服务器端

评论


答:

1赞 Flowra 11/17/2016 #1

我有同样的问题,我现在想到的想法是:

  1. 你让用户 A 为用户 B 创建地理围栏并将中心点和半径存储在远程数据库中,然后用户 B 将“或通过推送通知”检索此数据,然后根据这些数据在设备 B 上添加地理围栏,并在用户 B 进入地理围栏时实现,他将向用户 A 发送推送通知

  1. 您将检索用户 B 位置,例如每 5 分钟检索一次,每次检索该位置时,您将手动计算用户 B 位置与地理围栏中心点之间的距离,如果它小于半径,则表示用户 B 在地理围栏内。

我在谷歌地理围栏 api 中搜索了很多,但我找不到任何关于如何在另一个位置点“不是当前设备位置”上使用该 api 的有用信息


注意:这里的答案向您展示了如何手动实现地理围栏:
除了 Android API 之外,是否有任何 API 可用于计算地理围栏漏洞

我在这里问了一个像你这样的问题,答案可能会有所帮助: Android:如何让用户为另一个被跟踪的用户创建地理围栏?