0
我正在用J2ME寫我的第一個BB應用程序。我找到了一段描述如何獲取GPS座標的代碼片段。我得到一個空指針異常(在手機上),但沒有在模擬器上,我不知道爲什麼。黑莓j2me位置服務
我將不勝感激任何幫助。下面
代碼:
try
{
// Set criteria for selecting a location provider:
Criteria cr= new Criteria();
cr.setCostAllowed(true);
cr.setSpeedAndCourseRequired(true);
// Get an instance of the provider
LocationProvider lp= LocationProvider.getInstance(cr);
// Request the location, setting a 60 second timeout
Location l = lp.getLocation(300); //always times out
Coordinates c = l.getQualifiedCoordinates();
double longitude = 0;
double latitude = 0;
float course = l.getCourse();
float speed = l.getSpeed();
long timestamp = l.getTimestamp();
if(c != null)
{
// Use coordinate information
latitude = c.getLatitude();
longitude = c.getLongitude();
}
System.out.println("Lon" + longitude + " Lat "+ latitude + " course "+course+" speed "+speed+" timestamp "+timestamp);
}
catch(LocationException le)
{
System.out.println("Location exception "+le);
}
catch(InterruptedException ie)
{
System.out.println("Interrupted exception "+ie);
}
這裏有丟失了一些細節:什麼電話時間;它有清楚的天空視野;何時獲得了最後一次GPS定位。如果GPS已經冷一段時間並且/或者您的天空視野很差,則60秒很短。 IIRC模擬器將始終立即返回一個位置,即使該位置爲0,0,除非您明確禁用了LBS。 – Richard
嗯,謝謝理查德。最終,我通過進入選項 - >設備 - >位置設置並打開位置服務來解決問題。如果定位服務關閉,則Midlet引發java.lang.NullPointerException。這款手機是一款9780 btw。 Regards Luben – Luben