2012-03-13 14 views
0

其實我的問題是,有時我能得到的位置,有時我不能讓在Android真實設備的位置。我用下面的代碼獲取位置,無法在Android上獲取位置移動

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Criteria criteria = new Criteria(); 
criteria.setAccuracy(Criteria.ACCURACY_FINE); 
criteria.setAltitudeRequired(false); 
criteria.setBearingRequired(false); 
criteria.setPowerRequirement(Criteria.POWER_LOW); 
String provider = locationManager.getBestProvider(criteria, true); 
Location location = locationManager.getLastKnownLocation(provider); 

我需要時,我的應用程序啓動時得到的位置。我不知道爲什麼有時它會失敗。如何解決這個問題?

+0

您使用的廣播接收器? – Android 2012-03-13 14:50:11

+0

@ Android,我沒用過。 – bharath 2012-03-13 14:51:24

+0

那麼你如何在應用程序中獲取GPS協作座標? – Android 2012-03-13 14:52:53

回答

0

@jsmith評論我quesion,

提高您的功率要求,並確保你測試你可以 得到一個網絡或GPS小號ignal。如果有幫助,那麼它的簡單的 傳感器沒有得到足夠的接待知道位置的情況下。

這是我的問題的正確答案。現在它工作正常。

0

你忘了「位置更新」請求,宣佈LocationManager後使用此功能:

locationManager.requestLocationUpdates(provider, 0, 0, this); 

,你必須讓這個類實現LocationListener然後添加這個功能:

public void onLocationChanged(Location location) { 
//get the location here 
} 

如果你不希望重複得到的位置,你的位置後,必須停止「位置更新」是這樣的:

locationManager.removeUpdates(this); 

的情況下,你想要的應用程序總是監聽「位置更新」,你最好在onResume()更新請求,並刪除onPause() & onDestroy()

好運更新