這似乎是一個常見的問題,但我真的不明白爲什麼會發生,即使我讀噸simialr問題。我設置了一切 - 權限(FINE和COARSE),我已經在DDMS中設置了座標,我也試過使用telnet然後,但是不管它是什麼總是崩潰與getlastknownknownocation位置的線上的空指針異常,任何想法什麼是錯的?安卓getlastknownlocation總是空的模擬器
public class MainActivity extends Activity implements LocationListener {
private static LocationManager ok;
private Location L;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ok=(LocationManager)this.getSystemService(ok.GPS_PROVIDER);
L=ok.getLastKnownLocation(ok.GPS_PROVIDER);
}
@Override
public void onLocationChanged(Location Loc) {
try {
double latop=Loc.getLatitude();
double longe=Loc.getLongitude();
Log.i("OK", "and"+longe+""+latop);
} catch (NullPointerException e)
{
}
}
有幾件事錯在這裏(例如不檢查其供應商正在試圖獲得位置之前,啓用或可用),可能會導致你的錯誤。不過,我會建議您閱讀[本文檔](http://developer.android.com/training/location/retrieve-current.html),瞭解如何獲取用戶位置。由於要使當前的代碼正常工作所需的更改次數,重新開始可能會更有效。 – Rarw
如果沒有最後一個已知位置,則getlastknownlocation將返回null,如果不調用更新,則需要檢查是否有最終知識位置。我從不嘗試使用模擬器的位置,因爲我真的需要做一些事情,使其能夠像啓用位置服務的普通電話那樣工作。所以我的猜測是你總是變得空,因爲你正在使用模擬器。另外GPS在外面工作得很好,在你家裏面也許會失敗,並且不會爲你提供位置。 – Tobiel
仿真器將如何給位置value.for測試中,我們必須使用默認的經緯度爲仿真器是內部ddms-emulatorcontrol.you必須使用設備獲取位置值.. – Ranjit