2013-08-23 44 views
3
String logloc =""; 
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
if (location!=null) { 
    double longitude = location.getLongitude(); 
    double latitude = location.getLatitude(); 
    logloc = String.valueOf(latitude)+","+String.valueOf(longitude); 
    notfi(logloc); 
} 

在這個上面的代碼我的位置總是變空,即使我的gps設備已經打開,並且在建築物和建築物內部,我只能獲得null值,請幫助我運行此代碼android位置得到null需要解決方案

+0

派息添加清單文件的權限? – kittu88

+0

<使用權限android:name =「android.permission.ACCESS_NETWORK_STATE」/> <使用權限android:name =「android.permission。 ACCESS_FINE_LOCATION「/>此權限已添加在標記 –

+0

[請參閱此處](http://stackoverflow.com/a/16393534/2345913)之後。在處理之前,它會檢查GPS或NETWORKPROVIDER是否啓用。 – CRUSADER

回答

1

只是因爲你的設備沒有最後一個已知的位置,那就是爲什麼。首先使代碼爲onLocationChanged()。它將獲得當前位置並將其保存爲lastKnownLocation。然後該方法將起作用。

你可以幫助這裏

How do I get the current GPS location programmatically in Android?

+0

感謝您的回覆,那麼lm呢?我們getLastKnownLocation使用lm.getLastKnownLocation –

+0

你的代碼很好,但是那時候沒有你需要使用的locationlistner和自動triger OnLocationChanged並且得到當前的lat和long –

0

當前位置嘗試你這樣的活動必須是這樣的

Activity extends MapActivity implements LocationListener

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
String provider = locationManager.getBestProvider(criteria, false); 
Location location = locationManager.getLastKnownLocation(provider); 

    if (location != null) { 
     System.out.println("Provider " + provider + " has been selected."); 
     lat = (double) (location.getLatitude()); 
     lng = (double) (location.getLongitude()); 

     Log.i(TAG, "Lattitude:" + lat); 
     Log.i(TAG, "Longitude:" + lng); 

    }