Android - мне нужно создать постоянно работающий сервис, который отслеживает местоположение пользователей - PullRequest
0 голосов
/ 30 октября 2019

Я использую Радар для мониторинга местоположения пользователей. Дело в том, что мне нужно отслеживать местоположение после закрытия приложения. Я использую функцию, называемую Geofences, в основном это просто местоположение, и цель состоит в том, чтобы отправлять уведомления всякий раз, когда пользователь вводит один из них.

Это мой приемник вещания:

public class RadarBroadcastReceiver extends RadarReceiver {

private static final String TAG = "RadarBroadcastReceiver";

@Override
public void onEventsReceived(Context context, RadarEvent[] events, RadarUser user) {
    for (RadarEvent event : events){
        if (event.getType() == RadarEvent.RadarEventType.USER_ENTERED_GEOFENCE){
            Log.i(TAG, "onEventsReceived: User entered GeoFence ->" + event.getGeofence().getExternalId());
        }
        if (event.getType() == RadarEvent.RadarEventType.USER_EXITED_GEOFENCE){
            Log.i(TAG, "onEventsReceived: User exited GeoFence ->" + event.getGeofence().getExternalId());
        }
        else {
            Log.i(TAG, "onEventsReceived: User did some other event");
        }
    }
}

@Override
public void onLocationUpdated(Context context, Location location, RadarUser user) {
    Log.i(TAG, "onLocationUpdated: User location updated");
}

@Override
public void onError(Context context, Radar.RadarStatus status) {
    Log.e(TAG, "onError: an error occurred. Radar status -> "+status);
}
}

И добавил его в мой манифест

<receiver
  android:name=".MyRadarBroadcastReceiver"
  android:enabled="true"
  android:exported="false">
  <intent-filter>
      <action android:name="io.radar.sdk.RECEIVED" />
  </intent-filter>
  </receiver>

Теперь, куда мне идти отсюда? Подводя итог, мне нужно, чтобы BroadcastReceiver всегда работал, и когда я получаю событие (например, ввод геозоны), мне нужно уведомить пользователя. Я прочитал всю документацию, которую я могу найти, и это все еще не очень ясно, потому что мой вариант использования немного отличается.

Спасибо

...