Android 17 może zmniejszyć chorobę lokomocyjną jak iOS

Android 17 może zmniejszyć chorobę lokomocyjną jak iOS

Choroba lokomocyjna podczas korzystania ze smartfona w poruszającym się pojeździe dotyka wielu użytkowników Androida. To zjawisko wywołuje nudności, bóle głowy oraz zawroty głowy, powodowane przez konflikt sensoryczny między wzrokiem a narządem równowagi. Oczy koncentrują się na nieruchomym ekranie telefonu, podczas gdy ucho wewnętrzne sygnalizuje ruch ciała. Google planuje wprowadzić w Androidzie 17 funkcję mającą zminimalizować ten dyskomfort, podobną do rozwiązania znanego z iPhone’ów.

Jak działają wizualne wskazówki ruchu w systemach mobilnych

Mechanizm redukcji choroby lokomocyjnej opiera się na dodaniu elementów wizualnych naśladujących ruch pojazdu. Funkcja Motion Cues wyświetla na ekranie kropki, które przemieszczają się w czasie rzeczywistym zgodnie z danymi z czujników ruchu telefonu. Ten prosty trick wizualny « porusza » ekran razem z użytkownikiem, eliminując sprzeczność między sygnałami wzrokowymi a vestibularnymi.

Apple wprowadziło Vehicle Motion Cues w iOS 18, ale koncepcja ta nie jest nowa dla Androida. Już w 2018 roku pojawiła się aplikacja KineStop, dostępna dla urządzeń z systemem Android 7.0 i nowszych. Po zainstalowaniu i przyznaniu uprawnień wyświetlania nad innymi aplikacjami, narzędzie to oferuje podobną funkcjonalność bez konieczności oczekiwania na aktualizację systemu.

Platforma Nazwa funkcji Dostępność Wymagania systemowe
iOS Vehicle Motion Cues iOS 18 iPhone kompatybilny z iOS 18
Android KineStop (aplikacja) Obecnie Android 7.0 lub nowszy
Android Motion Cues/Assist Android 17 (planowana) Urządzenia z Android 17

Dlaczego Google opóźnia wprowadzenie natywnej funkcji

Choć funkcja Motion Cues jest w pełni działająca w usługach Google Play Services, pozostaje nieaktywna. Analiza kodu przeprowadzona pod koniec 2024 roku ujawniła istotną wadę obecnej implementacji. Kropki ruchu nie pojawiają się nad elementami systemowymi takimi jak aplikacja Ustawienia, pasek stanu, powiadomienia, szybkie ustawienia czy ekran blokady.

Problem wynika z wykorzystania standardowego API nakładek Androida. Ze względów bezpieczeństwa system uniemożliwia aplikacjom rysowanie nad krytycznymi komponentami, aby zapobiec oszustwom ze strony złośliwego oprogramowania. Choć jest to uzasadnione ograniczenie chroniące użytkowników, znacząco obniża ono skuteczność funkcji przeciwdziałającej chorobie lokomocyjnej.

Android 17 może rozwiązać ten problem poprzez wprowadzenie systemowego API Motion Cues. Dowody znalezione w najnowszej wersji Android Canary 2512 wskazują, że nowe podejście przenosi odpowiedzialność za renderowanie do SystemUI. To dokładnie ta aplikacja systemowa, która zarządza komponentami, nad którymi obecnie Motion Cues nie działa poprawnie.

Architektura techniczna przyszłego rozwiązania

Nowy kod w Androidzie zawiera następujące elementy implementacyjne :

  • MotionCuesService – usługa zarządzająca całym procesem wyświetlania
  • IMotionCuesCallback – interfejs komunikacji zwrotnej między komponentami
  • MotionCuesData – struktura przechowująca dane o położeniu i wyglądzie kropek
  • MotionCuesSettings – moduł konfiguracyjny funkcji

Aplikacja kliencka, którą są usługi Google Play Services, definiuje współrzędne X i Y, kolor, promień oraz odstępy między kropkami. Następnie renderuje te elementy na uprzywilejowanej warstwie okna za pomocą polecenia startMotionCuesSession. W efekcie Google Play Services określa rozmieszczenie i wygląd kropek, podczas gdy SystemUI zajmuje się faktycznym wyświetlaniem na ekranie.

Aby zapobiec zaśmiecaniu ekranu przez aplikacje innych firm, Android zezwala na korzystanie z API wyłącznie aplikacjom posiadającym nowe uprawnienie DRAWMOTIONCUES. To uprawnienie jest ograniczone do uprzywilejowanych aplikacji systemowych lub tych podpisanych certyfikatem platformy. SystemUI łączy się tylko z usługami spełniającymi wymaganie BINDMOTIONCUES_SERVICE, ignorując dane z nieautoryzowanych źródeł.

Perspektywy wdrożenia i integracja z innymi funkcjami

Ta dwuwarstwowa architektura omija ograniczenia API nakładek, ale wymaga aktualizacji systemu operacyjnego. Prawdopodobnie Google planuje wprowadzenie funkcji w trzecim kwartalnym wydaniu Androida 16 lub, co bardziej prawdopodobne, w Androidzie 17. Funkcja może zostać nazwana Motion Assist zamiast Motion Cues, aby uniknąć oskarżeń o kopiowanie Apple.

Istnieje nadzieja, że Google udostępni wersję kompatybilną z istniejącymi urządzeniami. Pomimo ograniczeń API nakładek, wiele osób uznałoby obecną implementację za użyteczną. Jeśli jednak firma nie zdecyduje się na takie rozwiązanie, użytkownicy mogą polegać na aplikacji KineStop jako niezawodnej alternatywie dostępnej już teraz.

Planowana jest również integracja z nadchodzącym trybem Transiting, zaprojektowanym do automatyzacji ustawień urządzenia podczas dojazdów. Idealnie tryb Transiting aktywowałby Motion Assist automatycznie, choć wbudowana w funkcję detekcja ruchu pojazdu może uczynić to zbędnym. Niezależnie od ostatecznej nazwy czy terminu wprowadzenia, rozwiązanie problemu choroby lokomocyjnej w urządzeniach Android stanowi istotny krok w poprawie komfortu użytkowania smartfonów podczas podróży.

Aleksandra Wiśniewska
Retour en haut