Android onlocationChanged () обратный вызов не работает при выключении экранаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android onlocationChanged () обратный вызов не работает при выключении экрана

Сообщение Anonymous »

Я относительно новичок в программировании Android, и я пытался создать приложение с службой переднего плана (я нацелен на API 31 или выше), которое использует местоположение и датчики. Я реализовал как SensoreventListener , так и LocationListener и их соответствующие методы интерфейса onsensorchanged () и onlocationChanged () . Они оба работают так, как предполагалось, когда действия приложения находятся на переднем плане, но onlocationChanged () не вызывается, когда я выключаю экран устройства.

Код: Выделить всё

...







...
< /code>
И я динамически запросил их в своей основной деятельности; Я объявил свой сервис с < /p>


< /code>
В моей деятельности я начинаю свою службу переднего плана с < /p>
startForegroundService(i);
< /code>
и в методе службы onstartcommand () я использую < /p>
ServiceCompat.startForeground(this, notification_id, serviceNotification, FOREGROUND_SERVICE_TYPE_LOCATION);
< /code>
Служба запускается нормально, и уведомление, которое я создал, публикуется как предполагалось; В Service's Oncreate () я зарегистрировал как методы обратного вызова датчиков, так и изменение местоположения < /p>
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
sm.registerListener(this, accelSensor, SensorManager.SENSOR_DELAY_UI);
sm.registerListener(this, rotationVectorSensor, SensorManager.SENSOR_DELAY_UI);

...

LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 50, 5.f, this);
< /code>
Я заметил, что если я использовал свое приложение с экраном, но с чем-то, что заставило устройство работать (например, навигатор GPS на Android Auto), оба методы обратного вызова работают, как и предполагалось, поэтому я также пытался использовать Wakelock в My Service's OnstartCommand < /p>

, который я позже выпускаю в методе Ondestroy Service < /p>
...

wakeLock.release();
После всего этого я также «я" беллистискую службу "в настройках устройства в настройках устройства, поэтому оно не ограничено вариантами сохранения батареи Android, но моя проблема все еще остается, и что я могу видеть из журналов, так это то, что onlocationchanged () не вызван, если экран отключен.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... een-is-off
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»