我的測試應用程序,發現設備的當前位置在模擬器中工作正常。也就是說,當我在eclipse中的DDMS中,我將位置座標發送給模擬器,應用捕獲廣播並在模擬器中顯示地圖中的位置。但在我真正的2.3.3安卓設備中,應用只是在gps在通知欄中閃爍時掛起。這是我在我的服務班位置服務不工作在一個真正的Android設備
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.e("<<MyGpsService-onStart>>", "GPS starting...");
triggerService = new Thread(new Runnable() {
public void run() {
try {
Looper.prepare();
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
myLocationListener = new GPSListener();
long minTime = 10000; // frequency update: 10 seconds
float minDistance = 50; // frequency update: 50 meter
lm.requestLocationUpdates(
// request GPS updates
LocationManager.GPS_PROVIDER, minTime, minDistance,
myLocationListener);
Looper.loop();
} catch (Exception e) {
Log.e("MYGPS", e.getMessage());
}
}// run
});
triggerService.start();
}
class GPSListener implements LocationListener {
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
Intent myFilteredResponse = new Intent(GPS_FILTER);
myFilteredResponse.putExtra("latitude", latitude);
myFilteredResponse.putExtra("longitude", longitude);
Log.e(">>GPS_Service<<", "Lat:" + latitude + " lon:" + longitude);
sendBroadcast(myFilteredResponse);
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};// GPSListenerclass
我不知道你們中是否有類似的問題。謝謝。
更新:我也跟着下面的問題和答案:
Android - Reliably getting the current location
變更後,該應用程序是工作好了很多。
當GPS閃爍時,表示您沒有GPS鎖定(通常來自信號不好)。你試過站在外面等着拿鎖嗎?一旦你這樣做,GPS圖標將停止閃爍並變得穩定。 – dymmeh
感謝您的評論。現在我正在獲取錯誤位置的座標。地圖上的位置離這裏5英里遠。也許這又是一個信號問題。但是,當我嘗試谷歌地圖,它顯示正確的地方。 –
您應該創建一些門檻並持續聆聽,直到您的位置落入其中(即location.getAccuracy())。然後停止聽取位置。 – Damian