Android 上的模拟位置是什么
“模拟位置”“虚拟定位”“选择模拟位置信息应用”,说的都是同一项 Android 设置,人们在开发者模式中看到它,却不明白它有什么用。简短的回答是:它指定了系统允许哪个应用代替真实位置提供坐标。下面说明这在实际中意味着什么、这项功能从何而来,以及哪些关于它的期望并不成立。
一段话说清定义
模拟位置是一组坐标,手机不是从卫星和基站获得它,而是从您在开发者选项中指定的应用获得。Android 把这样的应用称为测试位置来源,在它运行期间,系统会把它提供的位置交给所有询问“用户在哪里”的应用。“模拟”(mock)的意思是伪造、仿制,与编程中的 mock 对象是同一个意思。

这项功能从何而来
它不是为了欺骗服务而加入的。应用开发者需要检查地图在另一座城市的表现、配送在区域边缘如何运作、天气在另一个时区显示什么,而为此跑到现场是不可能的。所以 Android 内置了提供坐标的方法,它位于“开发者选项”中,紧挨着 USB 调试。
实际结果是:从 Android 6 开始,每部 Android 手机都有这项功能,它不需要 root,也不被视为破解系统。只需开启开发者模式并选择应用;操作步骤见单独的使用说明。
谁会收到模拟坐标
所有应用同时收到。Android 不区分它们:地图、天气、附近搜索以及任何以常规方式请求位置的应用,得到的都是同一个位置。您无法选择骗过谁、又向谁提供真实坐标,系统根本没有这种能力。
这也回答了一个常见问题:“如果我装了好几个虚拟定位应用会怎样”。只能启用一个,系统只允许一个测试位置来源。

模拟位置做不到什么
它不隐藏模拟这一事实。Android 会给来自测试提供程序的每个坐标加上“来自模拟来源”的标记,任何应用都可以读取它。银行应用、配送签收确认、企业考勤打卡以及带反作弊的游戏正是这样做的:它们能看到模拟(详细解释),而且无法对它们隐藏。
它不改变您的 IP 地址。按网络判断地区的服务不会注意到模拟坐标,那里需要的是 VPN,区别见虚拟定位还是 VPN 一文。
它不改变账号所属国家、手机号码、系统语言或时区。这些是单独的设置,服务往往根据它们判断您的位置,比根据坐标还准确。
在不同系统上是什么样子
这一项名称各异,但总是在开发者选项中:在中文系统中通常叫“选择模拟位置信息应用”。在较早的 Android 版本(6.0 之前)中,没有选择应用这一项,而是一个简单的“允许模拟位置”开关,如果您看到的是这样的教程,那它已经过时了。
“开发者选项”本身默认隐藏,点按版本号七次后才会出现。它在各系统上的位置单独介绍:Xiaomi、Samsung、Huawei、HONOR、realme、OPPO 和 vivo、Tecno 和 Infinix。
普通用户为什么需要它
有三种场景,模拟在其中正当地发挥作用,不误导任何人。
看看服务在另一座城市是什么样子:地图、时刻表、本地信息、天气。不向在没有实际需要时索要位置的应用透露确切地址:模拟在“提供我家的坐标”和“不用这个应用”之间提供了第三种选择。还有测试:无需到现场,就能反复执行与位置相关的场景(QA 讲解)。
我们不介绍违反与服务约定的场景:上班打卡、确认配送、绕过游戏中的地区限制。由于模拟来源标记,这些做法行不通,还会导致封号。