2010-12-09 68 views
2

我試圖在ddms透視圖中模擬模擬器設備的運動。我正在使用一個包含高程元素的gpx文件,但是當我的代碼運行時,它只會檢索緯度/經度,並且說海拔= 0.我的問題是,android模擬器可以用來模擬高度,速度等嗎?僅用於經度和緯度數據?Android模擬器可以用gpx文件模擬海拔高度嗎?

+0

可以經由包括海拔高度使用地理修復 [],所以是,它可以處理高度一個可選值仿真器仿真器發送修復程序。有了一個gpx文件,不知道,沒有做到這一點。 – blindstuff 2010-12-09 19:35:43

+0

好的,所以它有可能在仿真器中使用海拔高度數據,但它似乎沒有從gpx文件中讀取它......有沒有人用gpx文件模擬海量軌道數據的任何成功?或kml? – Dave 2010-12-09 19:50:10

回答

1

這不是一個真正的答案,但它可能會給你一些有用的想法。

你使用什麼類型的提供者?有2個選項:LocationManager.GPS_PROVIDERLocationManager.NETWORK_PROVIDER。我的猜測是隻有在使用LocationManager.GPS_PROVIDER時才能使用高度。

另外還有你Location更新(在LocationListener.onLocationChanged(Location location))你可以撥打location.hasAltitude()。如果此修正包含高度信息,則返回true,否則返回false。

UPDATE

所以它看起來像您遇到一些模擬器的問題。我再次提到我在Eclipse 3.4.1 + ADT 0.9.5 + Android 2.0.1 app + 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作爲高度(在最後PARAM「地理修復......」),然而,你可以跟你非零值嘗試。如果您不熟悉Ruby,那麼您可以將腳本應用到您最喜歡的腳本語言中。讓我知道這是否適合你。