저는 HTC Legend에서 일하고 있으며 내 자신의 GPS 로깅 앱을 구축하려고합니다. 사실은 모든 트랙에서 30 분의 간격이 있다는 사실과 함께 예상대로 작동합니다.Android 2.2 앱 : 30 분 후에 GPS 신호가 표시되지 않습니다. 30 분이 지나지 않아 다시 작동합니다.
내가 GPS 데이터를 얻지 못하는이 간격은 항상 30-60 분 정도입니다. 따라서 활동 30 분 후에 30 분 동안 GPS 데이터가 없습니다. 그리고 아무것도하지 않고 (심지어 응용 프로그램을 다시 시작하지 않음), 30 분 휴식 후에 다시 데이터 수집을 시작합니다.
누구에게도 설명이 있습니까?
내가 똑바로 앞으로의 requestLocationUpdates 물건으로 데이터를 수집한다는 얘기를 깜빡 했네요 ... 나를 미치게하지만 것 여기에는 문제 없습니다 ...편집 : 요청에 따라 코드 샘플 :
private LocationListener ll = new LocationListener(){
@Override
public void onLocationChanged(Location loc) {
}
@Override
public void onProviderDisabled(String arg0) {
}
@Override
public void onProviderEnabled(String arg0) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
};
위의 물건이 어디 우리가 ONSTART 함수의 라인을 가지고
GpsStatus.NmeaListener nl = new GpsStatus.NmeaListener() {
@Override
public void onNmeaReceived(long timestamp, String nmea) {
/*
* Use patcher and matcher to find a proper GPRMC sentence and remove symbols at the end like \n, # etc.
*/
m = p.matcher(nmea);
Log.d(LocationLoggerApp.TAG, "Time for a break...");
//Notify activity that app is ready for upload
broadcastIntent.putExtra("LOG", "Got valid GPRMC sentence");
sendBroadcast(broadcastIntent);
}
};
그리고 여기 : 그리고 여기가 원시 GPS 데이터를 처리하기 때문에 해당 NMEA 리스너입니다 "로드"
/*
* Request location updates as workaround because the function addNmeaListner DOES NOT enable GPS on the phone!
*/
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, interval*1000, 0, ll);
lm.addNmeaListener(nl);
감사합니다,
첫 번째 게시물에 샘플을 추가했습니다. 그러나 30 분 휴식 전후에 작동하기 때문에 이것은 분명히 문제가되지 않습니다. minTime과 minDistance가 잘못 될 경우 데이터를 가져 오지 않아야합니다. 아니면 내가 여기서 잘못 생각한거야? – Martin
30 분 동안/30 분 위치 데이터를 잃어 버릴만한 확실한 정보가 보이지 않습니다. 당신은 이것이 항상 일어난다 고 말하면서 나는 당신이 몇 가지 시험을해야한다고 생각합니다. 우선 Android 마켓에서 GPS Test (무료 버전)를 다운로드하고 로거와 동시에 실행 해 보겠습니다. 두 시간이 모두 1 시간 동안 작동하면 두 번째 30 분 동안 GPS 수정 사항이 손실되는지 확인하십시오. 그렇다면 잘못한 프로그램이 아님을 알고 있습니다. –