android模拟器可以用gpx文件模拟高度吗?

时间:2010-12-09 19:32:25

标签: android

我正试图在ddms视角中模拟仿真器设备的运动。我正在使用包含高程元素的gpx文件,但是当我的代码运行时,它只检索lat / lon并且说高程= 0.我的问题是,可以使用android模拟器来模拟高度,速度等,或者是仅适用于纬度和经度数据?

1 个答案:

答案 0 :(得分:1)

这不是一个真正的答案,但它可能会给你一些有用的想法。

您使用什么类型的提供商?有两个选项:LocationManager.GPS_PROVIDERLocationManager.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,那么您可以将脚本用于您喜欢的脚本语言。如果这对您有用,请告诉我。