私のテストアプリを動作しません。つまり、私のDDMSのEclipseで、私はエミュレータに位置座標を送信すると、アプリは、ブロードキャストをキャッチし、マップ内のエミュレータでの位置を表示します。しかし、私の実際の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
私は同じような問題があるのだろうかと思います。ありがとう。
UPDATE:私は、次の質問と答え続く:変更後
Android - Reliably getting the current location
を、アプリはかなり良く働いています。
のために動作します。あなたは外に立ってロックを取得しようとしたことがありますか? GPSアイコンは、点滅を停止し、一度これを行うと固体になります。 – dymmeh
コメントありがとうございます。今私は間違った場所の座標を取得しています。地図の場所はここから5マイル離れています。たぶんそれは再び信号の問題です。しかし、私はGoogleマップをしようとすると、それは正しい場所を示しています。 –
あなたの場所がその範囲内に入るまで(つまり、location.getAccuracy())、何らかのしきい値を作成して聞いてください。その後、場所の受信を停止します。 – Damian