Перейти до основного вмісту

Запис треку

Огляд

У цій статті розглядаються проблеми із записом GPX-треків, які тривалий час спостерігаються в різних версіях Android та iOS. Під фоновим режимом ми маємо на увазі, що застосунок OsmAnd не відображається на передньому плані, особливо коли екран пристрою вимкнено (що відрізняється від внутрішнього визначення фонового режиму в пристроях).

Примітки:

  • Починаючи з Android 11 (грудень 2020), більше не існує системного дозволу Завжди дозволяти доступ до місцезнаходження у фоновому режимі, але це не обмежує фоновий запис треків в OsmAnd. Згідно з документацією Google, тепер це вважається використанням на передньому плані, оскільки дозвіл на використання служби на передньому плані використовується внутрішньо, і системне сповіщення про запис треку завжди видиме.

  • Зверніть увагу, що нові формулювання в Android можуть вводити в оману:

    • Дозволити під час використання застосунку означає, що застосунок може безперервно отримувати дані про місцезнаходження, доки він відображається на екрані або має видиме сповіщення на панелі сповіщень Android, як це робить OsmAnd під час навігації або запису поїздки. (Технічно це називається режим переднього плану).

    • Дозволити завжди, з іншого боку, означає, що застосунок в принципі може отримувати ваше місцезнаходження "непомітно" без виконання жодної з цих умов. Але Android обмежує частоту доступу до місцезнаходження в цьому (фоновому) режимі приблизно до одного разу на годину, що, безумовно, не є правильним режимом для навігаційного застосунку.

Записані треки "шумні"

Існує 2 типові проблеми з точністю, що призводять до безладного записаного треку.

  • Тривале перебування на одному місці або занадто частий запис точок (відповідні зигзаги перебільшують справжні значення).
  • Слабкий сигнал GPS або перемикання на визначення місцезнаходження за сигналом мережі.

Заходи для пом'якшення:

  • Призупиняйте запис під час зупинок або використовуйте фільтр Мінімальне зміщення плагіна "Запис поїздки".

  • Вибирайте інтервал часу або відстані між точками запису, що відповідає кривизні вашої поїздки, але не створює багато зайвих точок (розкид яких створюватиме шум і перебільшуватиме коливання відстані та висоти).

  • Також можна відредагувати трек пізніше і видалити "шумні" точки.

  • Або ви можете використовувати налаштування плагіна "Запис поїздки", щоб фільтрувати "шумні" точки вже під час запису, виходячи з вашого досвіду та пристрою запису. Ви можете фільтрувати точки за різними критеріями:

    • Точки з низькою або нульовою швидкістю.
    • Точки з поганою точністю (GPS 'hdop').
    • Точки, розташовані ближче, ніж заданий поріг у метрах.
  • API сервісів Google або API Android. Ви можете додатково змінити спосіб отримання даних про місцезнаходження в OsmAnd на пристроях Android. У Налаштування OsmAnd → Джерело місцезнаходження виберіть між Сервісами Google Play та Android API, у багатьох випадках перемикання на Android API допомагає покращити записані треки та зробити їх менш "шумними".

У записаних треках є розриви

Налаштування OsmAnd для запису треку

Оптимізація Android для запису треку

Починаючи з Android 4.4, функції енергозбереження можуть обмежувати використання ЦП, зменшувати яскравість екрана та закривати фонові застосунки, коли екран вимкнено. Це може вплинути на продуктивність OsmAnd під час використання на відкритому повітрі, рендерингу карти та запису треку. Пізніші версії Android додали функції енергозбереження на основі штучного інтелекту, такі як Автоматична батарея та Автоматичне енергозбереження, що вносить динамічну та ще менш передбачувану поведінку. Щоб уникнути проблем із записом, принаймні на початковому етапі або для налагодження, розгляньте можливість повного вимкнення функцій енергозбереження. Користувачі повідомляють, що вплив на час роботи батареї для більшості пристроїв є прийнятним.

  • Виключіть OsmAnd з Оптимізації батареї. У Налаштуваннях вашого пристрою Android знайдіть OsmAnd у розділі Застосунки, Програми або Менеджер застосунків. Знайдіть розділ Батарея, Енергозбереження або Споживання енергії та виключіть OsmAnd з оптимізації батареї. (Проблема #5255)

  • Вимкніть режим Енергозбереження. Цей режим має високу ймовірність вплинути/завершити роботу навіть служб переднього плану, таких як запис поїздки в OsmAnd.

  • Вимкніть Адаптивне енергозбереження. Якщо ця функція увімкнена, вона застосовуватиме загальносистемні політики на основі шаблонів використання для деактивації/активації вищезгаданого режиму "енергозбереження".

  • Вимкніть Адаптивну батарею, якщо ви не використовуєте застосунок OsmAnd регулярно. Адаптивна батарея працює для кожного застосунку окремо, також на основі шаблонів використання. Її вплив на конкретний застосунок можна зменшити, виключивши цей застосунок з Оптимізації батареї (наприклад, встановивши значення Не оптимізовано). Однак Адаптивна батарея все ще може завершувати роботу служб переднього плану, таких як запис поїздки в OsmAnd, якщо пристрій вважає, що OsmAnd належить до вашого пулу "рідко використовуваних" застосунків.

Керування поведінкою фонових застосунків iOS

iOS може автоматично призупиняти або зупиняти фонові застосунки, коли системні ресурси перерозподіляються. OsmAnd не може змінити цю поведінку. Якщо запис треку переривається, коли пристрій заблоковано, це може залишити пропуски в записі. Ви можете відредагувати ці пропуски за допомогою інструмента Планування маршруту.

Для отримання додаткової інформації про те, як iOS обробляє відстеження місцезнаходження, перегляньте документацію Apple тут.

Перевірені налаштування живлення для Android 9, 10 та 11 (Hardy, 25.08.2020)

Наступні налаштування живлення були успішно протестовані на Android 9, 10, а пізніше і 11 (на пристроях Samsung), щоб OsmAnd записував треки без розривів. Будь ласка, перегляньте ці 10 налаштувань і встановіть їх відповідно:

  • (1) Економія енергії (режим) = ВИМК (або Оптимізований в Android 10)
  • (2) Адаптивне енергозбереження = ВИМК (Коли УВІМК, режим економії енергії може іноді активуватися, що заважає OsmAnd вести запис.)
  • (3) Адаптивна батарея = УВІМК (Все одно не впливає на застосунки, виключені з оптимізації батареї, див. (9) нижче, якщо застосунок не використовується рідко. Для безпеки встановіть ВИМК.)
  • (4) Переводити невикористовувані застосунки в режим сну = УВІМК (Але OsmAnd виключено з оптимізації батареї, див. (9) нижче!)
  • (5) Автоматично вимикати невикористовувані застосунки = ВИМК (Здається, присутнє лише в Android 9.)
  • (6) Оптимізувати налаштування = ВИМК (В Android 10 у розділі Обслуговування пристрою / Додатково, в Android 11, здається, зникло.)
  • (7) Автоматична оптимізація (щодня) = УВІМК (Тут не має ефекту.)
  • (8) Автоматичний перезапуск (у встановлений час) = ВИМК (Тут не має ефекту.)
  • (9) Оптимізувати використання батареї (В Android Налаштування / Застосунки / OsmAnd / Батарея або Налаштування / Застосунки / 3 крапки / Спеціальний доступ / Оптимізувати використання батареї / Усі / OsmAnd) = Виключити OsmAnd з оптимізації батареї (дуже бажано, хоча і не обов'язково, якщо застосунок часто запускається користувачем).
  • (10) Дозволити фонову активність = УВІМК для OsmAnd у розділі Застосунки / OsmAnd / Батарея для Android 11

Деякі з цих налаштувань взаємодіють між собою, тому будьте точними. Найкраще шукати вищевказані налаштування за назвою (з виразами в дужках та без них). Залежно від вашої версії Android, вони можуть бути розкидані по різних екранах налаштувань Android:

  • Обслуговування пристрою
  • Обслуговування пристрою / 3 крапки / Автоматизація
  • Обслуговування пристрою / Додатково
  • Обслуговування пристрою / Батарея
  • Обслуговування пристрою / Батарея / Налаштування
  • Обслуговування пристрою / Батарея / Керування живленням застосунків
  • Обслуговування пристрою / Батарея / Інші налаштування батареї

Як відстежувати пройдену відстань

OsmAnd не має спеціального віджета, схожого на одометр, ви можете використовувати плагін "Запис поїздки", щоб відстежувати пройдену відстань і скидати її за потреби.

OsmAnd 3.9: Проблеми з висотою при використанні Сервісів Google Play

Google Play змінив свою політику, і для її дотримання OsmAnd, починаючи з версії 3.9 (за винятком збірок Nightly, F-Droid та Huawei), зобов'язаний використовувати Сервіси Google Play для отримання даних про місцезнаходження під час роботи у фоновому режимі (тобто, за термінологією Android, як служба переднього плану з видимим системним сповіщенням).

Після цієї зміни, схоже, виникла проблема із записом висоти: очевидно, Сервіси Google Play дуже агресивно інтерполюють вимірювання висоти, див. проблему на GitHub #10864. Ця проблема стосується Android 10, можливо, не Android 11. Про проблему вже повідомлено на вебсайті Google, і, ймовірно, її буде виправлено 09-03-2021.

Як обхідний шлях, у Налаштування OsmAnd → Джерело місцезнаходження ви можете перемкнути джерело місцезнаходження з Сервісів Google Play на Android API.

OsmAnd 3.9: Пробудження GPS замінено на безперервну службу переднього плану (грудень 2020) {#osmand-39-gps-wake-up-now-replaced-by-continuous-foreground-service-20