Мое приложение отправляет данные о местоположении GPS на мой сервер каждые 15 минут. Эта функциональность является центральной целью приложения.
Однако регистрация GPS прекращается, когда телефон выключен и не используется. Время между записями GPS какое-то время составляет 15 минут, затем 1 час, 2 часа, 4 часа, 6 часов, затем обратно до 15 минут, когда я двигаю телефон или включаю его.
Похоже, это связано с режимом Doze, который был представлен в Android 6. Я добавил приложение в белый список оптимизации батареи, но это ничего не изменило, несмотря на то, что в документации утверждается обратное.
- Почему белый список не помогает в этом случае?
Что я должен делать вместо этого? Будет ли Wakelock через регулярные промежутки времени задерживать и тем самым предотвращать Doze?
// Request frequent location updates. Intent locationUpdateIntent = new Intent(this, StoreLocationService.class); locationUpdateIntent.setAction(MyAwesomeActionName); LocationRequest locationRequest = LocationRequest.create(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(15 * 60 * 1000); // 15 minutes locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes LocationServices.FusedLocationApi.requestLocationUpdates( mGoogleApiClient, locationRequest, PendingIntent.getService(this, 0, locationUpdateIntent, 0));