realme、OPPO 和 vivo 上的模拟位置

realme、OPPO 和 vivo 手机非常普及,三者的系统一脉相承:ColorOS、realme UI 和 Funtouch OS 表现相似,对后台服务同样严格。OnePlus 也属于这一类:OxygenOS 早已基于 ColorOS 构建,下面的内容对 OnePlus 用户同样适用。在这些手机上开启模拟并不比在其他 Android 上难;让它在熄屏十五分钟后依然有效,才是本说明要解决的问题。

  1. 找到版本号

    设置 →“关于本机”→“版本信息”(在某些系统上这个子菜单叫“版本”)。里面有“版本号”一项,需要连续点按七次。系统会显示倒计时,要求输入 PIN 码,然后提示开发者模式已开启。

    realme 和 OPPO 的“版本信息”界面:需要连续点按七次的“版本号”
  2. 打开开发者选项

    设置 →“其他设置”→“开发者选项”。在 Funtouch OS 上,这一项叫“开发者选项”,位于“系统管理”中。如果找不到,请使用设置搜索:它也能搜到隐藏的设置项。

    ColorOS 的“其他设置”:“开发者选项”位于列表末尾
  3. 选择模拟位置信息应用

    在这一项中找到“选择模拟位置信息应用”,选择 Mock Location。应用必须事先安装,否则列表为空:系统只显示能作为测试提供程序的应用。

    选择模拟位置信息应用:已勾选 Mock Location,未选择“无”
  4. 允许自动启动和后台活动

    设置 →“应用”→“应用管理”→ Mock Location →“耗电管理”。开启“允许自动启动”“允许后台行为”和“允许关联启动”。这是整篇说明中最关键的一步:不这样做,ColorOS 会在熄屏几分钟后关闭后台服务,模拟会悄无声息地停止。

    ColorOS 应用管理:已允许 Mock Location 自动启动和后台运行
  5. 关闭耗电优化

    在同一个“耗电管理”中(或设置 →“电池”→“应用耗电管理”),为应用选择“不优化”。智能省电会让系统保留随意让服务休眠的权利,“只有盯着屏幕时模拟才有效”正是这样造成的。

    ColorOS 耗电模式选择:已为应用选中“不优化”
  6. 检查模拟能否保持

    点按地图开始模拟,锁定手机,十五分钟后再回来查看。如果通知仍在通知栏中,说明设置已生效。如果消失了,请回到第 4 步和第 5 步:最常见的是某个开关仍处于关闭状态。完整的检查方法见如何确认虚拟定位生效这篇使用说明。

    通知栏中的 Mock Location 常驻通知:位置模拟正在后台运行

为什么在这些系统上模拟更常中断

ColorOS 及其同源系统对后台进程的管理比原生 Android 更激进:系统自行决定哪些服务保留在内存中,并默认把长时间运行的后台服务视为省电的对象。对大多数应用来说这并不明显,但模拟会因此完全停止,因为在提供坐标的整个过程中,服务都必须保持存活。

由此得出一条规则:在 realme、OPPO 和 vivo 上,后台设置比开启模拟的步骤更重要。开启只需一分钟,保持开启则需要三个开关和耗电模式。

不同版本中选项名称不同

ColorOS 13、14 和 15,realme UI 4 和 5,Funtouch OS 13 和 14,以及 OnePlus 上的 OxygenOS,几乎每次大版本更新都会调整设置项。稳定的不是名称,而是含义:设置中总会有应用自动启动管理、后台活动权限和耗电模式。请搜索“自动启动”“后台”和“耗电”,即使某一项被改了名,内置的设置搜索也能找到它。

如果您的版本中没有“允许关联启动”这一项,也没关系:并不是每个版本都有它,其余两项就足够了。

重启手机之后

模拟位置信息应用的选择会保留,无需重新选择。但如果应用没有“始终允许”位置权限和被其他应用启动的权限,重启后模拟本身不会自动恢复:没有这些权限,系统不会自行拉起服务。

关于重启后的行为,详见这个问题的解答。

如果完全没有“开发者选项”

请检查点按版本号是否生效:在某些系统上,倒计时以屏幕底部的弹出提示显示,很容易错过。点按七次后,系统总会要求输入 PIN 码或图案,如果没有出现这一步,说明模式没有开启。

在通过 MDM 管理的企业设备上,开发者模式可能被策略禁止。应用无法绕过这一点。

Mock Location — 免 root 的 Android 虚拟定位

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

下载 APK