3

此代碼是在我的MapActivityLocationManager.getLastKnownLocation()返回null,並onLocationChanged不會被調用

lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) 
     { 
      Toast.makeText(this, 
        "Por favor, habilita el GPS antes de usar esta opción", 
        Toast.LENGTH_SHORT).show(); 
      finish(); 
     } 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 
     Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     doYourMapMagicBaby(loc); 

使用的onCreate塊不管是什麼,總是祿返回null。無論如何,當我在GPS上註冊更新時,logcat會正確記錄我的位置。

08-24 09:21:18.479: D/libloc(260): Latitude: 40.4399979 (intermediate) 
08-24 09:21:57.500: D/libloc(260): Longitude: -3.6700022 

所以我想我可以實現我想要通過onLocationChanged()方法來做。沒有運氣。

public void onLocationChanged(Location location) 
{ 
    if (location != null) 
    { 
     System.out.println("La localizacion es: (lon: " 
       + location.getLongitude() + ", lat: " 
       + location.getLatitude() + ")"); 
     doYourMapMagicBaby(location); 
    } 
    else 
    { 
     System.out.println("La location es nula"); 
    } 

} 

我在做什麼錯?

+0

系統輸出不會讓你到達任何地方。使用android日誌類。 – njzk2

+0

我只是在調試。 System.out.println實際上打印在日誌中。我完成後我會刪除它們。 – razielsarafan

+0

仍然。 android日誌類更有幫助 – njzk2

回答

0

請檢查提供者當前是否啓用,因爲如果提供者當前被禁用,則返回null。 http://developer.android.com/reference/android/location/LocationManager.html#getLastKnownLocation(java.lang.String

+0

我已經檢查過它,閱讀我的代碼;-) – razielsarafan

+0

這就是問題的第三行......(雖然你應該在finish()之後返回,因爲你的其他治療仍然執行) – njzk2

+0

另外, logcat正在打印我的位置,所以GPS肯定有我的位置。 – razielsarafan

相關問題