別のアプリに実際の位置が表示されるのはなぜですか?
Android は、テスト用のプロバイダーからの座標すべてに「仮の情報源から」というフラグを付けます。アプリはそれを確認して、そのデータでの動作を拒否できます。Mock Location はこの確認を回避しようとはしません。
Android は、テスト用のプロバイダーから届く座標すべてに「仮の情報源から」というフラグを付けます。フラグは隠されておらず、どのアプリもそれを読み取って、そのデータをどう扱うかを決められます。
まさにそうしているサービスがあり、それは不具合ではなく意図的な選択です。銀行アプリ、配達の完了確認システム、企業の勤怠管理、位置に応じた特典プログラム、チート対策のあるゲームは、仮の座標では動作しません。これらにとって位置は便利さではなく事実の証明であり、その性質上、信頼できないデータを受け入れられないのです。
この確認はファームウェアを改変しなければ回避できず、Mock Location はあえてそれをしません。フラグを隠せるのは、ブートローダーのロックを解除した端末での Magisk レベルのモジュールだけで、保証を失い、システムの完全性チェックが通らなくなり、スマートフォンが使えなくなる危険もあります。私たちはこの方法をサポートも説明もしません。その理由と、それでも目的が果たせない理由は 位置偽装は隠せるか の記事で説明しています。
ただし、フラグが原因だと考える前に、もっと単純な 3 つの原因を除外してください。
1 つ目はキャッシュです。アプリが最後に取得した地点を覚えていて、新しい地点を求めずにそれを表示し続けている可能性があります。アプリを完全に閉じて(最小化ではなく閉じて)、偽装をオンにした状態で開き直してください。
2 つ目は IP による位置の判定です。一部のサービスはシステムではなくネットワークのアドレスから位置を判断します。座標の偽装はこの経路にはまったく影響せず、役立つのは座標の変更ではなく VPN です。2 つの仕組みの違いは 位置偽装か VPN か の記事で説明しています。
3 つ目は、アプリが起動時に一度だけ位置を求め、その後の変更に反応しないことです。その場合はいつもと逆の順番で、先に偽装をオンにしてからアプリを開いてください。
どれにも当てはまらず、偽装がオンなのにアプリが実際の地点を表示し続ける場合、そのアプリはほぼ確実に仮の情報源のフラグを読み取っており、どうすることもできません。