其他应用显示的是我的真实位置,为什么?
Android 会给来自测试提供程序的每个坐标加上“来自模拟来源”的标记。应用有权检查它并拒绝使用这类数据,Mock Location 不会试图绕过这项检查。
Android 会给来自测试提供程序的每个坐标加上“来自模拟来源”的标记。这个标记并不隐藏:任何应用都可以读取它,并决定如何处理这类数据。
有些服务正是这样做的,这不是故障,而是它们有意的选择。银行应用、配送签收确认系统、企业考勤打卡、基于位置的奖励计划以及带反作弊系统的游戏都会拒绝使用模拟坐标。对它们来说,位置不是便利功能,而是事实证明,出于业务性质,它们不能接受不可靠的数据。
不修改固件就无法绕过这项检查,而 Mock Location 有意不这样做。只有在解锁了引导加载程序的设备上使用 Magisk 一类的模块才能隐藏这个标记,代价是失去保修、破坏系统完整性检查,并有让手机变砖的风险。我们不支持也不介绍这条路线;原因以及为什么它仍然解决不了问题,见能否隐藏虚拟定位一文。
不过,在认定是标记的原因之前,请先排除三个更简单的原因。
第一是缓存。应用可能记住了最后已知的位置,一直显示它而不请求新的位置。请将其完全关闭(是关闭,不是切到后台),在模拟已开启的状态下重新打开。
第二是按 IP 定位。有些服务不是从系统获取位置,而是根据您的网络地址判断;模拟坐标对这个渠道完全没有影响,这时有用的是 VPN,而不是修改坐标。两种机制的区别见虚拟定位还是 VPN 一文。
第三,应用只在启动时请求一次位置,之后不再响应变化。那就把常规顺序反过来:先开启模拟,再打开应用。
如果这三点都不符合,而在模拟开启时应用仍显示您的真实位置,那它几乎可以肯定是在读取模拟来源标记,对此无能为力。