我想在Android模拟器中获得经度和纬度进行测试。
有谁能指导我如何实现这个目标吗?
如何将模拟器的位置设置为测试位置?
我想在Android模拟器中获得经度和纬度进行测试。
有谁能指导我如何实现这个目标吗?
如何将模拟器的位置设置为测试位置?
当前回答
对不起,在这个问题上的一些建议之后,我把我的位置设置为阿拉斯加。然而,我的设备仍然显示在加州山景城(谷歌的总部?)下面是我的修复方法:
1)进入位置设置:
2)设置测试地点。我选择了阿拉斯加。
3)谷歌“我的当前位置”,然后点击图中圈出的地图。 请注意,即使我将位置设置为阿拉斯加,我的虚拟设备仍然认为它在加州山景城。
4)点击该位置图标 您的位置现在应该在您的设备上更新。 你可以再次用谷歌搜索“我的当前位置”来验证。
如果有人遇到同样的问题,我希望我的解决方案能帮助到你。
其他回答
在我自己的一个项目中,我开发了一个在线服务,可以为Android模拟器提供模拟位置。
它使用geo nmea而不是geo fix,这使得它可以设置速度,航线,精确的时间等,除了纬度/长度。
该服务只需要nc (netcat)命令行工具,不需要其他工具。
http://www.kisstech.ch/nmea/
我已经做了一个类似于前面的答案之一的小脚本,但使用expect而不是python -因为它更简单一点(expect是为此而发明的)。
#!/usr/bin/expect
set port [lindex $argv 0]
set lon [lindex $argv 1]
set lat [lindex $argv 2]
set timeout 1
spawn telnet localhost $port
expect_after eof { exit 0 }
## interact
expect OK
set fp [open "~/.emulator_console_auth_token" r]
if {[gets $fp line] != -1} {
send "auth $line\r"
}
send "geo fix $lon $lat\r"
expect OK
send "exit\r"
示例用法:sendloc 5554 2.35607 48.8263
把阿尔贝托·高纳的回答写在一行里
token=$(cat ~/.emulator_console_auth_token); cat <(echo -e "auth $token \n geo fix 96.0290791 16.9041016 \n exit") - | nc localhost 5554
5554是adb设备中显示的模拟器端口号。
如果亚行的emu能够发挥作用,情况会更好。
对于新的模拟器:
http://developer.android.com/tools/devices/emulator.html#extended
基本上,点击模拟器控件中的三个点按钮(模拟器的右侧),它将打开一个菜单,允许你控制模拟器,包括位置
对于Android Studio用户:
运行模拟器,
然后进入“工具->Android ->Android设备监视器”
打开模拟器控件选项卡,并使用位置控件组。