使用的百度、高德、腾讯定位sdk均为国内版,不面向非大陆用户,不提供英文。
The Baidu, Amap and Tencent positioning SDKS used are all domestic versions and are not targeted at users outside the Chinese mainland. English is not provided.
Android 位置检测工具,依次运行 百度 → 高德 → 腾讯定位 SDK,展示定位结果与模拟定位信号。至少配置一个 Key;未配置的 SDK 自动跳过。每家 SDK 的应用层等待上限为 15 秒,三家都运行时约需最多 45 秒。
风险等级仅描述 SDK 的返回信号。“低风险”不能证明位置真实;定位失败、超时和字段未知也不能证明位置真实或虚假。
- 首次启动阅读功能与隐私说明,勾选同意。
- 在「配置密钥」填写至少一个 Key。页面展示当前安装包的包名与签名 SHA-1,可选中复制。
- 授予定位权限。建议使用精确位置;应用接受大致位置权限,但 SDK 的结果和可用字段可能受限。
- 开启系统定位,确保网络能够访问各厂商服务,点击「开始检测」。
三家按顺序执行,每家完成、失败、超时或跳过后进入下一家,结果分别显示在三个区域。
| SDK | 当前配置 | 重点字段 |
|---|---|---|
| 百度 | setEnableSimulateGnss(true)、setScanSpan(0),调用 LocationClient.start() 启动首次定位 |
getMockGnssProbability()、getMockGnssStrategy()、getDisToRealLocation()、getReallLocation() |
| 高德 | setOnceLocation(true)、setMockEnable(true),关闭定位缓存 |
isMock、错误码 15、trustedLevel、locationType |
| 腾讯 | setMockEnable(true)、setEnableAntiMock(true),禁用缓存,使用 requestSingleFreshLocation;请求坐标、不等待地址,SDK 首包超时 10 秒,应用兜底 15 秒 |
isMockGps()、getFakeProbability()、getFakeReason()、sourceProvider |
腾讯 setInterval(0) 表示有新结果时才回调,不表示单次定位。当前使用 SDK 的单次定位接口,完成、取消或超时后仍调用 removeUpdates() 清理;请求返回非 0 时立即报告失败,不再等待 15 秒超时。
以下是应用自己的映射规则,不是统一的厂商真实性保证:
| 等级 | 百度 | 高德 | 腾讯 |
|---|---|---|---|
| 高风险 | 定位成功且概率 HIGH,或虚假点与真实点距离 > 0 | isMock=true,或错误码 15 |
isMockGps=1、来源含 FAKE,或概率在 0.6~1 |
| 中风险 | 定位成功且概率 MIDDLE | — | 概率 > 0 且 < 0.6 |
| 低风险 | 定位成功且概率 LOW / ZERO | 定位成功且 isMock=false |
isMockGps=0 且没有更高风险信号 |
| 无法判断 | 定位失败或概率未知 | 其他定位失败 | 定位失败,或无法判断 Mock GPS 且没有明确反作弊信号 |
高德错误码 15 表示模拟位置被识别并拒绝,界面显示“检测完成 + 高风险”,不代表获得了可用位置。腾讯 isMockGps=-1、概率为 0 或概率无效本身不作为低风险证据。可信度、定位类型用于提供上下文,不能独立证明真伪。
应用包名为 com.tiger.locationverify。
| 厂商 | 申请入口 | 配置要点 |
|---|---|---|
| 百度 | 百度控制台 | 创建 Android SDK 应用,填写包名和实际安装包的签名 SHA-1 |
| 高德 | 高德控制台 | 添加 Android 平台 Key,填写包名和正确的签名 SHA-1 |
| 腾讯 | 腾讯控制台 | 创建应用,按控制台当前鉴权要求配置 |
调试与发布签名可能不同,以安装后配置页展示的值为准。自行签名时也可以查询 keystore:
keytool -list -v -keystore <你的 keystore 路径>
密钥保存在本地 SharedPreferences。检测器在创建客户端前通过 LocationClient.setKey、AMapLocationClient.setApiKey、TencentLocationManagerOptions.setKey 设置密钥。腾讯使用进程单例,修改腾讯 Key 后请重启应用,确保新值生效。
Manifest 中的密钥占位符默认为空。检测器先检查应用内保存的 Key,因此只修改 Manifest 占位符不会使该 SDK 通过“已配置”检查。日志中的 Key 会遮挡中间部分,但日志仍包含位置和 SDK 详情。
用户同意决定在本地持久保存,并在创建定位客户端前同步给三家 SDK;未同意时进入隐私页。应用生成的报告与日志保存在本机;SDK 按各自政策向官方服务传输所需信息,应用没有额外上传服务。
当前声明的依赖:百度 9.7.0、高德 11.3.000、腾讯 7.6.1.9。