Root cause identified. Pretty obvious bug in Android 1.6, GpsLocationProvider.java. Source here: http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=location/java/com/android/internal/location/GpsLocationProvider.java I've reported the bug here: http://code.google.com/p/android/issues/detail?id=4336
Symptoms: Described above. To reproduce problem: Register a GPS location provider and set the min time interval to greater than 1. A overrun as shown in the log trace above occurs after a few second. GPS location provider then hibernates (which resets the counter) just to overrun on the next cycle. *** This affects everyone who relies on LocationListener callbacks to onLocationChanged(), based on time intervals. *** Code review: When the GPS location provider reports a location update, the mFixCount counter is incremented, but never reset except when the location provider is hibernated as a result of the counter overrun. Look for mFixCount in the source file and it's pretty apparent. On Oct 21, 10:08 pm, JP <joachim.pfeif...@gmail.com> wrote: > Looks like I've run into some breakage from 1.5 to 1.6 after all... > I am registering location listeners with > LocationManager.requestLocationUpdates() > With GPS as location provider, I run into a problem with navigation > stopping by itself after a few seconds, just to return, stop again, in > an endless cycle. I haven't seen this prior to 1.6 Donut and I have no > clue what might cause this problem. > > Here's the Logcat output: > > 10-21 21:53:09.147: DEBUG/libgps(74): PDSM_PD_EVENT_GPS_BEGIN > 10-21 21:53:11.177: DEBUG/GpsLocationProvider(74): exceeded > MIN_FIX_COUNT > 10-21 21:53:11.177: DEBUG/GpsLocationProvider(74): stopNavigating > 10-21 21:53:11.177: DEBUG/libgps(74): qct_gps_stop > 10-21 21:53:11.187: DEBUG/libgps(74): PDSM_PD_EVENT_END > 10-21 21:53:11.187: DEBUG/GpsLocationProvider(74): Releasing wakelock > 10-21 21:53:13.097: DEBUG/dalvikvm(74): GC freed 2562 objects / 104912 > bytes in 223ms > 10-21 21:53:20.227: DEBUG/dalvikvm(74): GC freed 1345 objects / 51352 > bytes in 236ms > 10-21 21:53:21.180: DEBUG/GpsLocationProvider(74): ALARM_WAKEUP > 10-21 21:53:21.187: DEBUG/GpsLocationProvider(74): startNavigating > 10-21 21:53:21.187: DEBUG/libgps(74): qct_gps_set_position_mode = 1, > fix_frequency = 10 > 10-21 21:53:21.187: DEBUG/libgps(74): qct_gps_start > 10-21 21:53:21.207: DEBUG/GpsLocationProvider(74): Acquiring wakelock > 10-21 21:53:22.147: DEBUG/libgps(74): PDSM_PD_EVENT_GPS_BEGIN > 10-21 21:53:24.167: DEBUG/GpsLocationProvider(74): TTFF: 2978 > 10-21 21:53:27.287: DEBUG/dalvikvm(74): GC freed 1417 objects / 52512 > bytes in 232ms > 10-21 21:53:34.397: DEBUG/GpsLocationProvider(74): exceeded > MIN_FIX_COUNT > 10-21 21:53:34.397: DEBUG/GpsLocationProvider(74): stopNavigating > (and so forth) > > A web research for these logs didn't turn up anything (which is > unusual in my experience), so this leads me to post the question here > wondering what the root of the problem might be... Thanks in advance! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---