Служба определения местоположения Останавливает отправку - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть приложение для определения местоположения, которое отправляет местоположение в Firebase.Он основан на демонстрационной версии приложения Transport Tracker от Google и работает как сервис.Случайно прекращает отправку местоположения.Если вызов сделан на телефон, он немедленно отправляет данные в Firebase, но может снова остановиться.У меня нет никаких геозон.Как вы увидите из моего кода, у меня setInterval равен 3 минутам (180000), setFastestInterval равен 1 минуте (60000), а setMaxWaitTime равен 5 минутам (300000).Вот мой код:

    private void requestLocationUpdates() {
    final LocationRequest request = new LocationRequest();
    final String path = getString(R.string.firebase_path) + "/" + getString(R.string.transport_id);

    request.setInterval(180000);
    request.setFastestInterval(60000);
    request.setMaxWaitTime(300000);
    request.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient(this);
    int permission = ContextCompat.checkSelfPermission(this,    Manifest.permission.ACCESS_FINE_LOCATION);
    if (permission == PackageManager.PERMISSION_GRANTED) {
        // Request location updates and when an update is
        // received, store the location in Firebase
        client.requestLocationUpdates(request, new LocationCallback() {
            @Override
            public void onLocationResult(LocationResult locationResult) {
                DatabaseReference ref = FirebaseDatabase.getInstance().getReference(path);
                Location location = locationResult.getLastLocation();
                if (location != null) {
                    Log.d(TAG, "location update " + location);
                    ref.setValue(location);
                }
            }
        }, null);
    }
}

Можно ли заставить его отправлять обновление каждые 3 минуты без остановки?

...