我正试图在ddms视角中模拟仿真器设备的运动。我正在使用包含高程元素的gpx文件,但是当我的代码运行时,它只检索lat / lon并且说高程= 0.我的问题是,可以使用android模拟器来模拟高度,速度等,或者是仅适用于纬度和经度数据?
答案 0 :(得分:1)
这不是一个真正的答案,但它可能会给你一些有用的想法。
您使用什么类型的提供商?有两个选项:LocationManager.GPS_PROVIDER
和LocationManager.NETWORK_PROVIDER
。我的猜测是,只有在使用LocationManager.GPS_PROVIDER
时才能使用高度。
同样在Location
次更新(LocationListener.onLocationChanged(Location location)
)中,您可以致电location.hasAltitude()
。如果此修复包含高度信息,则返回true,否则返回false。
<强>更新强>:
所以看起来你遇到了一些模拟器问题。我记得我在Eclipse 3.4.1 + ADT 0.9.5 + Android 2.0.1应用程序+ WinXP上,并且使用GPS修复程序为模拟器提供的唯一方法是使用Telnet。所以我刚刚创建了一个帮助Ruby脚本:
require 'net/telnet'
scenario = [
'sleep 1',
'geo fix -121.45356 46.51119 0',
'sleep 3',
'geo fix -80.45356 45.51119 0'
]
simulator_connection = nil
begin
simulator_connection =
Net::Telnet::new(
'Timeout' => 5,
'Port' => 5554,
'Prompt' => /(OK|\AKO.*\z)/
)
rescue Errno::EBADF
puts '> Error: running Android Emulator not found. Exiting ...'
exit
end
puts '> got connection to Android Emulator'
begin
scenario.each do |action|
if action =~ /\Asleep\s\d+\z/
puts "> #{action} secs ..."
eval(action)
else
puts "> execute \"#{action}\""
simulator_connection.cmd(action)
end
end
puts '> job is done, exiting ...'
ensure
simulator_connection.close
end
你看我把0传递为高度('geo fix ...'的最后一个参数),但是你可以尝试使用非零值。如果您不熟悉Ruby,那么您可以将脚本用于您喜欢的脚本语言。如果这对您有用,请告诉我。