Android 上的模拟位置是什么

“模拟位置”“虚拟定位”“选择模拟位置信息应用”,说的都是同一项 Android 设置,人们在开发者模式中看到它,却不明白它有什么用。简短的回答是:它指定了系统允许哪个应用代替真实位置提供坐标。下面说明这在实际中意味着什么、这项功能从何而来,以及哪些关于它的期望并不成立。

一段话说清定义

模拟位置是一组坐标,手机不是从卫星和基站获得它,而是从您在开发者选项中指定的应用获得。Android 把这样的应用称为测试位置来源,在它运行期间,系统会把它提供的位置交给所有询问“用户在哪里”的应用。“模拟”(mock)的意思是伪造、仿制,与编程中的 mock 对象是同一个意思。

Android 开发者选项中的“选择模拟位置信息应用”,与 USB 调试在同一页

这项功能从何而来

它不是为了欺骗服务而加入的。应用开发者需要检查地图在另一座城市的表现、配送在区域边缘如何运作、天气在另一个时区显示什么,而为此跑到现场是不可能的。所以 Android 内置了提供坐标的方法,它位于“开发者选项”中,紧挨着 USB 调试。

实际结果是:从 Android 6 开始,每部 Android 手机都有这项功能,它不需要 root,也不被视为破解系统。只需开启开发者模式并选择应用;操作步骤见单独的使用说明。

谁会收到模拟坐标

所有应用同时收到。Android 不区分它们:地图、天气、附近搜索以及任何以常规方式请求位置的应用,得到的都是同一个位置。您无法选择骗过谁、又向谁提供真实坐标,系统根本没有这种能力。

这也回答了一个常见问题:“如果我装了好几个虚拟定位应用会怎样”。只能启用一个,系统只允许一个测试位置来源。

示意图:模拟应用把坐标交给 Android 系统,系统再分发给其他所有应用

模拟位置做不到什么

它不隐藏模拟这一事实。Android 会给来自测试提供程序的每个坐标加上“来自模拟来源”的标记,任何应用都可以读取它。银行应用、配送签收确认、企业考勤打卡以及带反作弊的游戏正是这样做的:它们能看到模拟(详细解释),而且无法对它们隐藏。

它不改变您的 IP 地址。按网络判断地区的服务不会注意到模拟坐标,那里需要的是 VPN,区别见虚拟定位还是 VPN 一文。

它不改变账号所属国家、手机号码、系统语言或时区。这些是单独的设置,服务往往根据它们判断您的位置,比根据坐标还准确。

在不同系统上是什么样子

这一项名称各异,但总是在开发者选项中:在中文系统中通常叫“选择模拟位置信息应用”。在较早的 Android 版本(6.0 之前)中,没有选择应用这一项,而是一个简单的“允许模拟位置”开关,如果您看到的是这样的教程,那它已经过时了。

“开发者选项”本身默认隐藏,点按版本号七次后才会出现。它在各系统上的位置单独介绍:Xiaomi、Samsung、Huawei、HONOR、realme、OPPO 和 vivo、Tecno 和 Infinix。

普通用户为什么需要它

有三种场景,模拟在其中正当地发挥作用,不误导任何人。

看看服务在另一座城市是什么样子:地图、时刻表、本地信息、天气。不向在没有实际需要时索要位置的应用透露确切地址:模拟在“提供我家的坐标”和“不用这个应用”之间提供了第三种选择。还有测试:无需到现场,就能反复执行与位置相关的场景(QA 讲解)。

我们不介绍违反与服务约定的场景:上班打卡、确认配送、绕过游戏中的地区限制。由于模拟来源标记,这些做法行不通,还会导致封号。

如何开启和关闭

开启只需几分钟:开发者模式、选择应用、位置权限、在地图上选点,分步说明见此。最好在其他应用中确认模拟真的生效:五项检查。

关闭也同样简单:在应用中停止模拟;如果需要彻底取消这项能力,把“选择模拟位置信息应用”改回“无”。详见如何关闭模拟位置的解答。

Mock Location — 免 root 的 Android 虚拟定位

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

下载 APK