如何在 Android 模拟器中模拟 GPS 位置?本文记录了使用方法。
可以通过 Telnet 连接到仿真器。然后你有一个模拟器控制台,可以让你输入某些数据,比如地理定位、网络等。
比如: 要连接到控制台,打开命令行并输入:
telnet localhost 5554
然后,就可以使用 geo 命令在设备上设置纬度、经度和海拔等。 在控制台中输入:
geo fix <longitude value> <latitude value>
打开模拟器
WX20210924-105023@2x.png
选择 location
WX20210924-105253@2x.png
在这里可以填写经纬度位置,点击 SEND 按钮是模拟发送单个位置。
右下角的 LOAD GPX/KML 按钮是加载一个录制好的轨迹文件,加载后就可以播放了(点击 绿色的播放按钮即可)。那么如何录制一段轨迹呢?往下看
先看下模拟器的名称
adb devices
adb 的-s 指令指定了模拟器的名称, 然后再使用 geo fix 发送位置点。
adb -s emulator-5554 emu geo fix 20.49612 20.24010
然后写个脚本不断的发就行了。
可以使用 GPX 文件来记录轨迹,并在上面说的方法加载轨迹文件。 我们借助谷歌地图的链接来实现:
下面是操作示例: 在谷歌地图生成一个路线,并复制 网址。
image.png
在 mapstogpx 中粘贴路线网址并下载gpx文件的图例。
image.png
使用 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 这个文件,删除密码保存,后续就不再需要身份验证了。
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