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
-~----------~----~----~----~------~----~------~--~---

Reply via email to