Inna aplikacja pokazuje moją prawdziwą lokalizację — dlaczego?
Android oznacza każdą współrzędną od testowego dostawcy flagą „z pozorowanego źródła”. Aplikacje mają prawo ją sprawdzać i odmawiać pracy z takimi danymi — Mock Location nie próbuje obchodzić tej kontroli.
Android oznacza każdą współrzędną, która przychodzi od testowego dostawcy, flagą „z pozorowanego źródła”. Flaga nie jest ukryta: każda aplikacja może ją odczytać i zdecydować, co zrobić z takimi danymi.
Niektóre usługi właśnie tak robią — i to nie usterka, tylko ich świadomy wybór. Aplikacje bankowe, systemy potwierdzania dostaw, firmowa ewidencja czasu pracy, programy nagród za lokalizację i gry z systemami anti-cheat odmawiają pracy z pozorowanymi współrzędnymi. Dla nich lokalizacja to nie wygoda, tylko dowód faktu, i z natury swojego zadania nie mogą przyjmować niewiarygodnych danych.
Tej kontroli nie da się obejść bez modyfikacji systemu, a Mock Location celowo tego nie robi. Flagę można ukryć tylko modułami pokroju Magisk na urządzeniu z odblokowanym bootloaderem — z utraconą gwarancją, złamanymi kontrolami integralności systemu i ryzykiem unieruchomienia telefonu. Tej drogi nie wspieramy i nie opisujemy; dlaczego, i dlaczego i tak nie rozwiązuje ona zadania, wyjaśnia artykuł czy można ukryć zmianę lokalizacji.
Ale zanim uznasz, że przyczyną jest flaga, wyklucz trzy prostsze powody.
Pierwszy — pamięć podręczna. Aplikacja mogła zapamiętać ostatni znany punkt i dalej go pokazywać, nie prosząc o nowy. Zamknij ją całkowicie (zamknij, a nie zminimalizuj) i otwórz ponownie przy już aktywnej symulacji.
Drugi — lokalizacja po IP. Niektóre usługi ustalają położenie nie przez system, tylko po adresie sieciowym; zmiana współrzędnych w ogóle nie wpływa na ten kanał, tam pomógłby VPN, a nie zmiana współrzędnych. Różnicę między tymi mechanizmami wyjaśnia artykuł zmiana lokalizacji czy VPN.
Trzeci — aplikacja pyta o lokalizację raz przy starcie i nie reaguje na późniejsze zmiany. Wtedy zrób to w odwrotnej kolejności niż zwykle: najpierw włącz symulację, potem otwórz aplikację.
Jeśli żaden z trzech nie pasuje, a aplikacja przy aktywnej symulacji uparcie pokazuje prawdziwy punkt, niemal na pewno czyta flagę pozorowanego źródła i nic się z tym nie da zrobić.