如何在 Android 模拟器中模拟 GPS 位置

1. 背景

如何在 Android 模拟器中模拟 GPS 位置?本文记录了使用方法。

2.实现方法

2.1 方案一:使用 telnet

可以通过 Telnet 连接到仿真器。然后你有一个模拟器控制台,可以让你输入某些数据,比如地理定位、网络等。

比如:
要连接到控制台,打开命令行并输入:

telnet localhost 5554

然后,就可以使用 geo 命令在设备上设置纬度、经度和海拔等。
在控制台中输入:

geo fix  

2.2 方案二: 使用模拟器

打开模拟器

选择 location

在这里可以填写经纬度位置,点击 SEND 按钮是模拟发送单个位置。

右下角的 LOAD GPX/KML 按钮是加载一个录制好的轨迹文件,加载后就可以播放了(点击 绿色的播放按钮即可)。那么如何录制一段轨迹呢?往下看

2.3 使用 adb 指令

先看下模拟器的名称

adb devices

adb 的-s 指令指定了模拟器的名称, 然后再使用 geo fix 发送位置点。

adb -s emulator-5554 emu geo fix 20.49612 20.24010

然后写个脚本不断的发就行了。

3. 录制轨迹文件

可以使用 GPX 文件来记录轨迹,并在上面说的方法加载轨迹文件。
我们借助谷歌地图的链接来实现:

  • 1、打开谷歌地图,选择一个开始位置,和一个结束位置,出现 “路线”后,复制 浏览器中的连接地址。
  • 2、打开 此网站:https://mapstogpx.com 并将链接粘贴到“Let's Go”文本框内,并按“Let's Go”按钮,将下载 GPX 文件。
  • 3、将下载的的文件保存到本地,回到 安卓模拟器软件,点击 LOAD GPX/KML 按钮加载文件,再点击播放即可。

下面是操作示例:
在谷歌地图生成一个路线,并复制 网址。

image.png

在 mapstogpx 中粘贴路线网址并下载gpx文件的图例。


image.png

4. 扩展

使用 telnet 连接 模拟器,进入 模拟器的控制台( Android Console )
windows 下使用 telnet,mac 下使用 nc,指令如下:

nc localhost 5554
# windows 下使用 telnet localhost 5554

进入后需要先授权,要先找到密码 。密码位于 ~/.emulator_console_auth_token 文件内。新开一个命令行窗口输入:

cat ~/.emulator_console_auth_token

获得密码后,回到 已经进入的Android控制台窗口输入:

auth 你的密码

然后就可以了,输入help看看有哪些指令:

# 输入 help
help

# 下面是输出的结果:
Android console commands:
    help|h|?
    help-verbose
    ping
    automation
    event
    geo
    gsm
    cdma
    crash
    crash-on-exit
    kill
    restart
    network
    power
    quit|exit
    redir
    sms
    avd
    qemu
    sensor
    physics
    finger
    debug
    rotate
    screenrecord

另外,每次输入密码太繁琐,不想输入的话,就打开 .emulator_console_auth_token 这个文件,删除密码保存,后续就不再需要身份验证了。

5..参考:

https://newbedev.com/how-to-emulate-gps-location-in-the-android-emulator
https://developer.android.com/studio/run/emulator
https://blog.csdn.net/weixin_36429993/article/details/117544318

END

你可能感兴趣的:(如何在 Android 模拟器中模拟 GPS 位置)