我想在Android模拟器中获得经度和纬度进行测试。

有谁能指导我如何实现这个目标吗?

如何将模拟器的位置设置为测试位置?


当前回答

我已经做了一个类似于前面的答案之一的小脚本,但使用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

其他回答

Dalvik Debug Monitor >选择模拟器>模拟器控制选项卡>位置控制。

DDMS——android_sdk/tools/ DDMS或android_sdk/tools/monitor

在模拟器控制台中使用"geo"命令

从命令行发送模拟位置数据:

在Android模拟器中启动你的应用程序,在SDK的/tools目录中打开一个终端/控制台。 连接到模拟器控制台: telnet localhost 5555(将5555替换为模拟器正在运行的任何端口) 发送位置数据: * geo fix发送固定的地理位置。 该命令接受以十进制为单位的经度和纬度,以及以米为单位的可选海拔。例如: 地理修正-121.45356 46.51119 4392

在模拟中选择扩展控件。之后,您可以通过搜索或拖动映射到要设置的位置来设置模拟的位置。

最后点击SET LOCATION按钮保存。

我已经做了一个类似于前面的答案之一的小脚本,但使用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

首先进入eclipse中的DDMS部分 比打开模拟器控件.... 转到手动部分 设置纬度和长度,然后按发送按钮