1. 背景
如何在 Android 模拟器中模拟 GPS 位置?本文记录了使用方法。
2.实现方法
2.1 方案一:使用 telnet
可以通过 Telnet 连接到仿真器。然后你有一个模拟器控制台,可以让你输入某些数据,比如地理定位、网络等。
比如:
要连接到控制台,打开命令行并输入:
telnet localhost 5554
然后,就可以使用 geo 命令在设备上设置纬度、经度和海拔等。
在控制台中输入:
geo fix <longitude value> <latitude value>
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 按钮加载文件,再点击播放即可。
下面是操作示例:
在谷歌地图生成一个路线,并复制 网址。
在 mapstogpx 中粘贴路线网址并下载gpx文件的图例。
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-emulatorhttps://developer.android.com/studio/run/emulatorhttps://blog.csdn.net/weixin_36429993/article/details/117544318
END