我知道這個問題已被問到,但我不能得到它的工作。onLocationChanged()沒有被調用
此代碼繼續到請求位置部分。我知道現在的設置是不好的選擇,但我只是想獲得結果,我現在不關心手機電池。我可以在Eclipse調試器中看到,
"libloc" - "Latitude: XXXXX"
"libloc" - "Longitude: XXXX"
"libloc" - "Accuracy: 27000"
這意味着GPS正在工作。但我無法獲得實際位置,因爲LocationListener
中沒有任何方法正在觸發。
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(loc==null){
String provider = null;
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
provider = LocationManager.GPS_PROVIDER;
} else {
Toast.makeText(this, "GPS not available", 3000).show();
if(lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
provider = LocationManager.NETWORK_PROVIDER;
} else {
Toast.makeText(this, "Provider Not available", 3000).show();
}
}
if(provider != null) {
lm.requestLocationUpdates(provider, 0, 0, locationListener);
}
} else {
Latitude = loc.getLatitude();
Longitude = loc.getLongitude();
}
這是我的Location Listener對象,它聲明在最上面的代碼下面。 沒有這些方法正在被調用(因此Log.d函數,所以我可以添加斷點,但沒有任何內容在此偵聽器中被調用)。
double Latitude = 0.0;
double Longitude = 0.0;
LocationListener locationListener = new LocationListener(){
@Override
public void onLocationChanged(Location location) {
Latitude = location.getLatitude();
Longitude = location.getLongitude();
}
@Override
public void onProviderDisabled(String provider) { Log.d("GPS", "HEY THERE"); }
@Override
public void onProviderEnabled(String provider) { Log.d("GPS", "HEY THERE"); }
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("GPS", "HEY THERE");
}
};
其他信息,從評論:
這是不是這樣的。 loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);總是 返回null。 - Overload119 50分鐘前
當您逐句通過IF 語句中的其餘代碼時會發生什麼? - 傑克44分鐘前
我終於到了這一行:lm.requestLocationUpdates(provider,0, 0,locationListener);然後在調試器控制檯消息中,我可以看到 經度,經度,精度顯示 - 並重復顯示, ,所以我假設GPS已被激活,並獲取了 位置。問題是locationListener沒有觸發它的任何 方法。 - Overload119 41分鐘前
而我看着鏈接,我的代碼是一樣的。 - Overload119 41分鐘 以前供應商在這一點上的價值是什麼? - 傑克30分鐘 前
提供商的價值是「GPS」 - Overload119 15分鐘前
能 設置在onLocationChanged一些斷點,看看當/如果它是 射擊?如果您已經完成此操作,則在運行您的應用程序 之後,可能需要幾秒鐘後才能將偵聽器註冊爲 火災。移動你的手機並等待。在某些時候,它應該反覆發射。 - 傑克12分鐘前imm.io/8vXb下面是截圖 - 調試器顯示,GPS在工作(注意,此事件 彈出,一遍又一遍)。我在onLocationChanged()上已經有 的中斷點 - 即使在等待 延長的時間段後,它也永遠達不到它。它返回的經度/緯度始終是 。 - Overload119 39秒前編輯
我也試過撥打電話 lm.getLastKnownLocation(LocationManager。GPS_PROVIDER);通過按鈕 並在控制檯消息顯示接收到經緯度 後單擊它。 - 雖然該方法返回的位置爲null。 - Overload119 0秒前編輯
解決了嗎?同樣的問題!似乎我們都回收了相同的代碼片段,這是不正確的。 –
@ Overload119,omg!我在這裏得到了同樣的情況。那麼解決方案如何? – gumuruh