onLocationChanged () выполняется дважды при использовании фиктивного местоположения - PullRequest
0 голосов
/ 18 февраля 2019

В моем приложении я хочу определить, находится ли пользователь над сайтом или нет.В onLocationChanged() у меня есть функция входа в систему, которая аутентифицирует пользователя и сохраняет широту и долготу в базе данных.И моя функция, чтобы проверить, включено ли фиктивное местоположение или нет, также здесь.Мне нужно получить местоположение только один раз, поэтому я использовал locationManager.removeUpdates(this).Но когда я проверил с включением фиктивного местоположения, onLocationChanged() звонил дважды, и я не могу понять, почему.

Вот мой код:

final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
        String lat = String.valueOf(location.getLatitude());
        String lon = String.valueOf(location.getLongitude());
        locationManager.removeUpdates(this);
        mockEnabled = isMockEnabled(getApplicationContext(), location);
        login(userId, password, inDate, inTime, lat, lon);
        Log.v("MOCK_STATUS", "ENABLED");
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
};
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
...