Как проверить, находится ли устройство в режиме ожидания или перемещается для приложения Android? - PullRequest
1 голос
/ 11 декабря 2019
  • В одном из моих мобильных приложений я хотел хранить широту и долготу пользователя в реальном времени, используя GPS устройства Android.

  • Для этого я собираюсь использовать API для отправки значения широты и долготы устройства и буду вызывать этот API каждые 10 секунд.

  • Но, когда устройство находится в режиме ожидания и никуда не перемещается, я не хочу отправлять запрос через API, чтобы избежать ненужной нагрузки на сервер,

  • Существует ли какой-либо метод в библиотеке Android, который может определить, движется ли устройство или нет? Если устройство находится в кармане или я положил его в машину в сумочке, оно должно проверить, что я хожу или сплю или машина движется или нет.

Я новичок в Android.

Спасибо, JD

Ответы [ 2 ]

1 голос
/ 11 декабря 2019

Вы можете достичь этого, используя API Recognition Activity в Android. Существуют различные виды деятельности для выявления. https://developer.android.com/guide/topics/location/transitions

1 голос
/ 11 декабря 2019

Сохранение последней отправленной широты и долготы в общих настройках и вычисление расстояния между последним местоположением и текущим местоположением. Если расстояние больше, обновите новое местоположение до сервера.

Для вычисления расстояния используйте эту функцию

 private float calculateLocationDifference() {
    float[] dist = new float[1];
    Location.distanceBetween(lastLocation.getLatitude(), lastLocation.getLongitude(), currentLocation.getLatitude(), currentLocation.getLongitude(), dist);
    return dist[0];
}

Обращаем ваше внимание, что непрерывное определение местоположения разряжает батарею пользователя быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...