Навігація як завжди
Поки сигнал супутників узгоджується з рухом авто, навігатор отримує ту саму позицію, що й без застосунку. GPS-приймач телефона працює як звичайно, а після зупинки сесії телефон повертається до звичайної геолокації.
Коли сигнал супутників заглушено чи підмінено, навігатор втрачає позицію або показує вас зовсім не там. gnss-gateway помічає це й далі визначає позицію сам: за швидкістю автомобіля, гіроскопом телефона й картою доріг. Навігатор лишається той самий, просто отримує позицію від gnss-gateway.
Android дозволяє одному застосунку подавати позицію для всього телефона, так працюють, наприклад, застосунки для зовнішніх GPS-приймачів. gnss-gateway використовує цю можливість: поки супутникам можна вірити, передає їхню позицію, а коли ні — розраховує свою.
Поки сигнал супутників узгоджується з рухом авто, навігатор отримує ту саму позицію, що й без застосунку. GPS-приймач телефона працює як звичайно, а після зупинки сесії телефон повертається до звичайної геолокації.
Без застосунку навігатор пише «немає сигналу GPS», зупиняє стрілку або переносить вас в інше місце. Із застосунком позиція рухається дорогами з вашою швидкістю, і маршрут ведеться далі. Похибка з часом росте, про це — у розділі «Точність».
OsmAnd чи інший навігатор, що бере позицію із системної геолокації, працює з тими самими картами, маршрутами й налаштуваннями. Що вже перевірено — у розділі «Навігатори».
Синя точка на мапі Google Maps іде за позицією від gnss-gateway, а з нормальним сигналом GPS навігація Google працює як завжди. У режимі ведення маршруту Google Maps, схоже, перевіряє ще й сам супутниковий приймач, тож під глушінням може показати «Немає сигналу GPS». Приймач на тому самому телефоні застосунок навмисно не заміщує, бо інакше не помітить, коли супутники повернуться. Вихід — трансляція позиції на інший пристрій.
У дорозі застосунок не потребує уваги: запускається разом із двигуном, а стан показує маленький індикатор поверх навігатора.
Схема: будь-який навігатор на весь екран, індикатор gnss-gateway — поверх нього.
Індикатор можна вимкнути. Автостарт працює лише з адаптером OBD; з велодатчиком сесію запускають кнопкою.
За даними IATA, у цивільній авіації випадків глушіння GNSS у 2025 році було на 67% більше, ніж у 2023-му, а випадків підміни — на 193% більше. Ті самі завади діють і на телефон в автомобілі.
Вбудовані автомобільні навігатори давно поєднують супутники з датчиками руху, щоб не губитися в тунелях і паркінгах. Кілька джерел позиції поєднує й сам Android.
Вбудовані системи розраховані насамперед на короткі провали сигналу — тунелі й паркінги. gnss-gateway розрахований на тривале глушіння й на підміну: розпізнає хибний сигнал, веде позицію дорогами за картою й перевіряє кілька можливих маршрутів одночасно. Працює на звичайному телефоні з даними, які вже є в авто, і з навігатором, яким ви вже користуєтесь.
Звідки береться позиція і як застосунок вирішує, якому джерелу вірити.
Супутниковий сигнал легко заглушити або підробити, а швидкість коліс і повороти авто ззовні не підробиш. Тому застосунок постійно порівнює, чи рухається точка GPS так само, як машина. Якщо GPS показує, що ви стоїте, а колеса крутяться, або раптом переносить вас на 40 км, застосунок перестає вірити такому сигналу, доки той знову не узгодиться з рухом.
Розрахунок лише за швидкістю й поворотами накопичує похибку: з часом позиція з'їжджала б із дороги. Карта доріг це обмежує — автомобіль їде дорогами, а повороти й розвилки підказують, де саме. Коли незрозуміло, на яку з доріг ви звернули, застосунок тримає кілька версій одночасно й відкидає ті, що перестали збігатися з рухом. Карту завантажують один раз; під час поїздки інтернет для неї не потрібен.
Супутники в нормі, навігатор отримує їхню позицію.
Позиція розрахована й прив'язана до доріг — основний режим без GPS.
Розрахунок без прив'язки до доріг: коли поблизу немає дороги з карти або карту ще не завантажено.
Калібрування: застосунок визначає, як телефон стоїть у тримачі.
Коли супутники повертаються, позиція підтягується до них плавно, без стрибка.
Точних цифр «до N метрів» ми свідомо не обіцяємо: вони дуже залежать від маршруту.
Частина обмежень — наш вибір, частина — правила самого Android.
У Android немає окремого способу підключити стороннє джерело позиції для всього телефона. Штатний шлях — «застосунок для фіктивних місцезнаходжень» у параметрах розробника; так само працюють застосунки для зовнішніх GPS-приймачів. Кожна така позиція має позначку (Location.isMock() з Android 12, раніше — isFromMockProvider()), і інші застосунки можуть її перевірити. Таксі, доставка, банки чи ігри з геолокацією можуть таку позицію не прийняти. Ми цю позначку не приховуємо й не обходимо.
Застосунок подає позицію в системну геолокацію Google (Fused Location Provider), звідки її бере більшість застосунків. Провайдер «gps» — сам приймач — лишається справжнім: якби ми заміщували і його, застосунок перестав би чути супутники. Наслідок: програми, які читають лише приймач (зокрема Google Maps у режимі маршруту), під глушінням можуть показувати «немає сигналу». Для них є трансляція на інший пристрій.
| Що | Вимога | Навіщо |
|---|---|---|
| Android | 8.0 і новіші | мінімальна версія застосунку |
| Сервіси Google Play | обов'язково | системна геолокація Google, у яку подається позиція |
| Тримач | будь-який, що надійно фіксує телефон | телефон не повинен рухатися відносно авто: у сумці чи кишені повороти рахуються хибно |
| Гіроскоп | обов'язково | повороти без GPS; є майже в усіх сучасних телефонах, але не в найдешевших |
| Bluetooth | класичний — для OBD і трансляції; BLE — для велодатчика | джерело швидкості |
| Пам'ять | місце під карту України й логи | розмір карти видно під час завантаження; логи застосунок прибирає сам, коли місця мало |
| Живлення | зарядка в авто | GPS, датчики й Bluetooth працюють безперервно |
Підходить навігатор, що бере позицію із системної геолокації Google. Нижче — що вже перевірено в поїздках.
| Застосунок | Стан | Примітка |
|---|---|---|
| OsmAnd | працює | основний навігатор під час випробувань, веде маршрут і без GPS |
| Google Maps — перегляд мапи | працює | синя точка йде за позицією gnss-gateway |
| Google Maps — ведення маршруту | частково | із GPS — як завжди; під глушінням на тому ж телефоні може казати «немає сигналу GPS» (чому). Обхід — трансляція на інший пристрій |
| Waze, Organic Maps, HERE WeGo та інші | не перевірено | ще не перевіряли |
| Таксі, доставка, банки, ігри | може відмовити | деякі навмисно відкидають фіктивну геолокацію |
Потрібен роз'єм діагностики OBD-II. Обов'язковим він став у США з 1996 року, у ЄС — для бензинових авто з 2001-го і дизельних з 2004-го; тож його мають майже всі легкові авто, вироблені після цих років. Застосунку потрібна поточна швидкість — стандартний параметр, який віддають майже всі такі авто. Інші параметри (оберти, напруга, пройдена відстань) необов'язкові й вмикаються, якщо авто їх підтримує.
Для електромобілів OBD-II не обов'язковий, і схожий роз'єм не гарантує, що там є стандартні дані. Перевірити можна лише на конкретному авто.
Найдовше триває завантаження карти. Налаштування в застосунку розкладені на шість кроків у тому самому порядку, що й тут; виконані кроки позначаються зеленим.
Поки застосунок не в Google Play, його встановлюють із файлу APK (як отримати — у розділі «Тестова збірка»).
Натисніть «Завантажити» — застосунок завантажить дорожню мережу України з OpenStreetMap. Краще через Wi-Fi: файл великий, розмір і час, що лишився, видно під час завантаження. Без карти застосунок працює лише в режимі DR.
Тут дві дії в Android, кнопки в застосунку ведуть просто туди:
Параметри розробника нічого не змінюють самі собою: це прихований розділ налаштувань, і ми використовуємо з нього лише один пункт.
Авто: спершу спаруйте адаптер OBD у налаштуваннях Bluetooth телефона (зазвичай PIN 1234 або 0000), потім виберіть його в застосунку. Про вибір адаптера — окремий розділ.
Велосипед: виберіть режим «Велосипед» і знайдіть датчик кнопкою пошуку — спаровувати в налаштуваннях Android не треба. Детальніше — у розділі «Велосипед».
Автостарт і стоп за двигуном — сесія сама починається, коли двигун запрацював, і завершується після зупинки (як саме). Індикатор стану показує режим поверх навігатора (що означають кольори). Обидва потребують дозволу «Поверх інших застосунків»; на деяких телефонах — ще й окремих дозволів виробника (дивіться свій).
Якщо навігатор працює на іншому пристрої — 2DIN-магнітолі з Android чи другому телефоні, — увімкніть трансляцію: телефон стане для нього Bluetooth GPS-приймачем. Деталі — у розділі «Трансляція».
Задайте префікс — коротке ім'я, за яким розробник відрізнить ваші поїздки від чужих, — і вирішіть, чи надсилати логи. Що саме в них — у розділі «Приватність».
| Дозвіл | Навіщо | Якщо не дати |
|---|---|---|
| Місцезнаходження (точне) | читати супутники й подавати позицію; достатньо «Лише під час використання» — сесія працює як служба зі сповіщенням | застосунок не працює |
| Пристрої поблизу (Android 12+) | Bluetooth: адаптер OBD, велодатчик, трансляція | немає джерела швидкості |
| Сповіщення (Android 13+) | стан сесії й попередження (наприклад, про зайняту шину OBD) | служба працює, але стану не видно |
| Поверх інших застосунків | індикатор стану; автостарт за двигуном | сесію запускаєте вручну, індикатора немає |
| Без обмежень батареї | щоб система не зупинила службу посеред поїздки | сесія може обірватися |
| Запуск після ввімкнення телефона | чекати двигун і після перезавантаження телефона | після перезавантаження — відкрити застосунок |
| Інтернет | завантаження карти; надсилання логів, якщо ви погодились | — |
Назви пунктів меню залежать від версії оболонки й мови, тож орієнтуйтеся на зміст, а не на точний текст. Найсвіжіші покрокові інструкції для кожної моделі збирає незалежний проєкт Don't kill my app! — посилання є в кожній вкладці.
Застосунку потрібні сервіси Google Play, тож телефони без них не підтримуються. Перевірте, чи є на телефоні Google Play.
Невеликий пристрій, що вставляється в діагностичний роз'єм авто (зазвичай під кермом, ліворуч від рульової колонки) і передає дані телефону через Bluetooth. Для застосунку це головне джерело швидкості — саме вона робить можливим розрахунок без GPS.
Коли адаптер у роз'ємі й автостарт увімкнено, застосунок чекає у фоні. Старт: двигун запрацював (за обертами, а якщо авто їх не віддає — за ознаками ввімкненого запалення). Зупинка: двигун не працює близько двох хвилин і авто стоїть. Поки є ознаки руху — швидкість, GPS або повороти — сесія не зупиняється, навіть якщо адаптер замовк.
Деякі газові системи (ГБО) та інші прилади постійно опитують авто через той самий роз'єм. Тоді шина зайнята, відповіді на запити застосунку приходять рідко й із затримкою. Застосунок оцінює стан шини з перших секунд і, якщо вона переповнена:
Багато адаптерів живляться від роз'єму постійно, навіть із вимкненим запаленням. Струм невеликий, але за тижні стоянки може розрядити акумулятор, особливо старий. Якщо авто довго стоїть — вийміть адаптер або оберіть модель з кнопкою чи автоматичним сном.
Телефон із gnss-gateway може працювати як зовнішній Bluetooth GPS-приймач для іншого пристрою: 2DIN-магнітоли з Android, планшета чи другого телефона. На тому пристрої навігатор отримує позицію так, наче до нього під'єднали справжній приймач.
Коли це корисно: навігатор на великому екрані магнітоли або Google Maps у режимі маршруту (чому). На іншому пристрої застосунок-приймач заміщує GPS повністю, тож навігатор отримує позицію, як від звичайного приймача.
Експериментально: трансляція працює, але не з усіма застосунками-приймачами однаково. Деякі шукають службу за стандартним ідентифікатором порту (це наш випадок), інші під'єднуються інакше — тоді може не вийти.
Замість адаптера OBD швидкість дає датчик на колесі з Bluetooth LE.
Застосунок зараз на стадії польових випробувань. Збірки поширюються серед тестувальників напряму.
Як долучитисяКонтакт для тестувальників з'явиться тут.
Кожна тестова збірка діє 180 днів від дати збирання, щоб застарілі версії, у яких можуть бути помилки, вчасно замінювалися новими, з виправленнями. За 30 днів до кінця застосунок попередить, а після — не запускатиме навігаційну сесію й попросить оновитися. Дату перевіряємо не за годинником телефона, тож переведення годинника нічого не змінить. Остаточна версія в магазині такого обмеження не матиме.
Ні. Використовуються лише штатні можливості Android.
Так. Інтернет потрібен один раз — завантажити карту доріг, і за бажанням — надсилати логи. Мережеве місцезнаходження (Wi-Fi, вежі) застосунок використовує як грубий орієнтир, якщо телефон його надає.
Таке можливо. Тоді застосунок деякий час розраховує позицію сам, а щойно супутники знову узгоджуються з рухом, плавно повертається до них. Наслідок — трохи менш точна позиція на короткому відрізку, без стрибка.
Помітно: супутники, датчики й Bluetooth працюють безперервно. Розраховано на телефон, що заряджається в авто.
Застосунок лише читає стандартні параметри й нічого не записує в авто. Єдиний практичний ризик — адаптер, залишений у роз'ємі на тривалу стоянку.
Не перевіряли. Залежно від авто, Android Auto бере позицію з телефона або з власного приймача авто — у другому випадку gnss-gateway на неї не впливає.
Ні: iOS не дозволяє стороннім застосункам подавати позицію для всієї системи.
Поки ні: карта доріг — лише для України, і позиції за її межами застосунок відкидає.
Вони бачать позначку фіктивної геолокації й навмисно її не приймають. Зупиніть сесію, коли потрібен такий застосунок. Детальніше.
Краще ні. Застосунок визначає напрямок руху за тим, як телефон закріплено. Якщо телефон переставили, дайте застосунку перекалібруватися — центр індикатора стане жовтим, а потім повернеться до звичайного кольору.