У меня есть приложение для определения местоположения, которое отправляет местоположение в 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 минуты без остановки?