如何检查虚拟定位是否生效

模拟已开启,橙色按钮亮着,但它真的生效了吗?在应用本身中检查没有用:它无论如何都会显示所选位置。只能从外部,通过其他应用的视角来确认。下面是按严格程度递增的五项检查,以及每项检查失败意味着什么。

  1. 确认模拟正在运行

    有两个标志,无需打开设置就能看到:应用中的圆形电源按钮为橙色,通知栏中有后台常驻通知。没有通知,说明系统已关闭后台服务,目前还没有什么可检查的。

    通知栏中的 Mock Location 常驻通知:位置模拟正在后台运行
  2. 在浏览器中打开定位检查页面

    最快也最可靠的检查。任何检测位置的页面(搜索“检查我的位置”能找到几十个)向系统请求坐标的方式都和普通应用一样。允许访问后,将显示的坐标与所选位置进行比对,一致就说明模拟生效。

    浏览器的优点是不会在两次访问之间保留您之前的位置,也不会误显示旧结果。

    在浏览器中检查定位:页面显示的坐标与所选位置一致
  3. 在其他地图应用中检查

    打开任意地图应用,点按“我在哪里”按钮,它应当显示所选位置。如果开启模拟前该应用已经打开,请将其完全关闭后重新启动:几乎所有地图都会在内存中保留最后已知的位置,在获得新位置之前一直显示它。

    其他地图应用显示的位置就是模拟位置:模拟已生效
  4. 用天气应用对照

    天气是很好的对照检查,因为它很少请求位置,通常只在启动时请求。在模拟开启状态下重启天气应用:城市应当变为您所选位置所在的城市。如果城市没有变化,说明应用要么把它记成了手动选择的城市,要么按 IP 地址判断地区,而模拟不影响这一点。

  5. 检查模拟能否保持

    熄屏后让手机静置 15–20 分钟,然后查看通知栏。如果通知还在,说明服务存活,模拟仍在运行。如果通知消失了,说明系统杀掉了后台服务,这要通过后台设置而不是检查来解决:Xiaomi、Samsung、Huawei、realme、OPPO 和 vivo。

坐标不一致:按顺序检查什么

第一:系统中确实选择了该应用。设置 →“开发者选项”→“选择模拟位置信息应用”,这里应显示 Mock Location,而不是“无”。重装应用时这项设置会被重置,系统大版本更新后有时也会。

第二:模拟已开启,而不只是打开了应用。通过点按地图设定位置,按钮会变为橙色。

第三:开启模拟后,用于检查的应用已重启,否则它显示的是保存的旧位置。

第四:应用读取了模拟来源标记,并有意忽略这类坐标。银行、配送和企业考勤系统就是这样工作的,这不是故障,而是它们有意的决定。

第五:应用按 IP 地址而不是通过系统判断位置。模拟坐标不影响这个渠道,区别见虚拟定位还是 VPN 一文。

应用显示真实位置而不是模拟位置:需要逐项检查的原因

为什么不能在应用本身中检查

虚拟定位应用会画出您选择的位置,无论系统是否接受了它。它显示的是您的意图,而不是结果。看到结果的唯一方法,是询问第三方的坐标使用者:任何其他应用或浏览器。

出于同样的原因,用顶部提示中的地址来判断是否成功也没有意义:地址是地理编码根据所选坐标得出的,即使模拟完全关闭也会显示。

精度与“跳动”的位置

开启模拟后,其他应用不会立即更新位置:每个应用都有自己的轮询间隔,从几秒到几分钟不等。如果地图先显示旧位置,半分钟后才移到新位置,这是正常现象,而不是故障。

另一种情况是带过滤的应用:它们会平滑轨迹,把瞬间跳跃几百公里视为不可能而忽略。导航和运动记录应用中会出现这种行为,重启应用通常就能解决。

Mock Location — 免 root 的 Android 虚拟定位

免费,不经 Google Play 分发。安装前可以核对文件校验和。

下载 APK