Search code examples
cordovageolocation

Cordova 3.1 and Phone Gap Geolocation fails with "Position retrieval timed out" on Android


Steps to reproduce..

cordova create hello4 com.example.hello HelloWorld
cd hello4
cordova platform add android
cordova plugin add org.apache.cordova.geolocation

Replace index.html with the full example from here: http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#Geolocation

add this to config.xml

<feature name="Geolocation">
    <param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>

then..

cordova build android
cordova run android

This produces the error: Code 3 Position retrieval timed out.

I have also tried with the Phone Gap online builder to no avail. Does anyone know how to fix this?

Many thanks


Solution

  • I'm seeing the same issue with Phonegap v3.1.0 but not with v2.9.0 - see my answer to this question:

    Yes, you're right, there appears to be a problem with geolocation in Phonegap v3.x - I have 3.1.0-0.15.0 installed. I'm seeing the same: a single correct position, then a timeout error, triggering the clear/re-add of the watcher, followed by a correct position. Running the same test app on Phonegap 2.9.0, it works fine, successfully retrieving positions. This time I used the options { maximumAge: 0, timeout: 30000, enableHighAccuracy: true };

    See if you get the same results: here's the v3.1.0 project&APK and here's the v2.9.0 project&APK.

    Here's the logcat when I built it with Phonegap 3.1.0:

    10-24 20:50:29.287: I/Web Console(17092): Device Ready at :1171167449
    10-24 20:50:59.287: I/Web Console(17092): Error while retrieving current position. Error code: 3,Message: Position retrieval timed out.
    at :1171167509
    10-24 20:51:29.328: I/Web Console(17092): Error while retrieving current position. Error code: 3,Message: Position retrieval timed out.
    at :1171167509
    10-24 20:51:59.337: I/Web Console(17092): Error while retrieving current position. Error code: 3,Message: Position retrieval timed out.
    at :1171167445
    10-24 20:52:28.397: I/Web Console(17092): Position updated: latitude=50.64626501666667, longitude=-4.736916616666666, accuracy=17m
    at :-1468095491
    10-24 20:52:28.397: I/Web Console(17092): Position updated: latitude=50.64626501666667, longitude=-4.736916616666666, accuracy=17m
    at :-1468095491
    10-24 20:52:58.407: I/Web Console(17092): Error while retrieving current position. Error code: 3,Message: Position retrieval timed out.
    at :1171167445
    10-24 20:53:27.878: I/Web Console(17092): Position updated: latitude=50.646433849999994, longitude=-4.736890766666666, accuracy=8m
    at :-1468095491
    10-24 20:53:27.878: I/Web Console(17092): Position updated: latitude=50.646433849999994, longitude=-4.736890766666666, accuracy=8m
    at :-1468095491
    10-24 20:53:57.887: I/Web Console(17092): Error while retrieving current position. Error code: 3,Message: Position retrieval timed out.
    at :1171167445
    10-24 20:54:27.367: I/Web Console(17092): Position updated: latitude=50.64643435, longitude=-4.736896850000001, accuracy=9m at
    :-1468095491
    10-24 20:54:27.367: I/Web Console(17092): Position updated: latitude=50.64643435, longitude=-4.736896850000001, accuracy=9m at
    :-1468095491
    10-24 20:54:57.377: I/Web Console(17092): Error while retrieving current position. Error code: 3,Message: Position retrieval timed out.
    at :1171167445
    

    And here's the logcat from exactly the same app when I built it using Phonegap v2.9.0:

    10-24 21:10:19.698: I/Web Console(19755): Device Ready at :1172318425
    10-24 21:10:22.487: I/Web Console(19755): Position update rejected because accuracy of45m is less than required 20m at :1172318349
    10-24 21:10:54.697: I/Web Console(19755): Position updated: latitude=50.646209633333335, longitude=-4.737049566666667, accuracy=9m
    at :1172318421
    10-24 21:10:55.177: I/Web Console(19755): Position updated: latitude=50.64623646666667, longitude=-4.7369963, accuracy=9m at
    :1172318421
    10-24 21:10:56.177: I/Web Console(19755): Position updated: latitude=50.64623674999999, longitude=-4.736949983333333, accuracy=9m
    at :1172318357
    10-24 21:10:57.677: I/Web Console(19755): Position updated: latitude=50.646237033333335, longitude=-4.73695015, accuracy=9m at
    :1172318357
    10-24 21:10:58.677: I/Web Console(19755): Position updated: latitude=50.646238333333336, longitude=-4.736944716666667, accuracy=9m
    at :1172318357
    10-24 21:10:59.747: I/Web Console(19755): Position updated: latitude=50.6462348, longitude=-4.736952216666666, accuracy=9m at
    :1172318357
    10-24 21:11:00.667: I/Web Console(19755): Position updated: latitude=50.64623206666667, longitude=-4.73695695, accuracy=9m at
    :1172318357
    10-24 21:11:01.677: I/Web Console(19755): Position updated: latitude=50.646232700000006, longitude=-4.7369544999999995,
    accuracy=9m at :1172318357
    10-24 21:11:02.677: I/Web Console(19755): Position updated: latitude=50.646232700000006, longitude=-4.7369544999999995,
    accuracy=12m at :1172318357
    10-24 21:11:03.687: I/Web Console(19755): Position updated: latitude=50.64623241666666, longitude=-4.736952116666667, accuracy=12m
    at :1172318357
    10-24 21:11:04.207: I/Web Console(19755): Position updated: latitude=50.646240533333334, longitude=-4.736951266666667,
    accuracy=12m at :1172318357
    10-24 21:11:05.187: I/Web Console(19755): Position updated: latitude=50.646235399999995, longitude=-4.736953183333334,
    accuracy=12m at :1172318357
    10-24 21:11:06.197: I/Web Console(19755): Position updated: latitude=50.6462522, longitude=-4.736926933333334, accuracy=12m at
    :1172318357
    10-24 21:11:07.197: I/Web Console(19755): Position updated: latitude=50.646253949999995, longitude=-4.736931416666667,
    accuracy=12m at :1172318357
    10-24 21:11:07.517: I/Web Console(19755): Position update rejected because accuracy of45m is less than required 20m at :1172318357
    10-24 21:11:08.197: I/Web Console(19755): Position updated: latitude=50.64624196666667, longitude=-4.736951366666666, accuracy=9m
    at :1172318357
    10-24 21:11:09.697: I/Web Console(19755): Position updated: latitude=50.646261833333334, longitude=-4.73694825, accuracy=9m at
    :1172318357
    10-24 21:11:10.697: I/Web Console(19755): Position updated: latitude=50.64627816666666, longitude=-4.736968816666666, accuracy=9m
    at :1172318357
    10-24 21:11:11.197: I/Web Console(19755): Position updated: latitude=50.64627698333334, longitude=-4.736982066666667, accuracy=9m
    at :1172318357
    10-24 21:11:12.197: I/Web Console(19755): Position updated: latitude=50.646291033333334, longitude=-4.736992866666667, accuracy=9m
    at :1172318357
    10-24 21:11:13.197: I/Web Console(19755): Position updated: latitude=50.646285549999995, longitude=-4.73696835, accuracy=9m at
    :1172318357
    10-24 21:11:14.197: I/Web Console(19755): Position updated: latitude=50.64628801666666, longitude=-4.736988766666667, accuracy=9m
    at :1172318357
    10-24 21:11:15.197: I/Web Console(19755): Position updated: latitude=50.646256433333335, longitude=-4.736974683333333, accuracy=9m
    at :1172318357
    10-24 21:11:16.197: I/Web Console(19755): Position updated: latitude=50.64623895, longitude=-4.736980716666666, accuracy=9m at
    :1172318357
    10-24 21:11:17.207: I/Web Console(19755): Position updated: latitude=50.646249616666665, longitude=-4.736948533333333, accuracy=9m
    at :1172318357
    10-24 21:11:18.207: I/Web Console(19755): Position updated: latitude=50.64624111666667, longitude=-4.7369412833333335, accuracy=9m
    at :1172318357
    10-24 21:11:19.217: I/Web Console(19755): Position updated: latitude=50.64624506666667, longitude=-4.7369719, accuracy=9m at
    :1172318357
    10-24 21:11:20.207: I/Web Console(19755): Position updated: latitude=50.646218950000005, longitude=-4.7369769999999995,
    accuracy=9m at :1172318357
    10-24 21:11:21.207: I/Web Console(19755): Position updated: latitude=50.64621395000001, longitude=-4.7369834, accuracy=9m at
    :1172318357
    10-24 21:11:22.207: I/Web Console(19755): Position updated: latitude=50.646217416666666, longitude=-4.736986783333333,
    accuracy=12m at :1172318357
    10-24 21:11:23.207: I/Web Console(19755): Position updated: latitude=50.646211816666664, longitude=-4.7369768500000005,
    accuracy=12m at :1172318357
    10-24 21:11:24.707: I/Web Console(19755): Position updated: latitude=50.646210450000005, longitude=-4.736994233333333,
    accuracy=12m at :1172318357
    10-24 21:11:25.707: I/Web Console(19755): Position updated: latitude=50.64621571666667, longitude=-4.736988583333333, accuracy=12m
    at :1172318357
    10-24 21:11:26.707: I/Web Console(19755): Position updated: latitude=50.646216466666665, longitude=-4.7370037, accuracy=12m at
    :1172318357
    10-24 21:11:27.707: I/Web Console(19755): Position updated: latitude=50.64621723333333, longitude=-4.737019266666667, accuracy=20m
    at :1172318357
    10-24 21:11:28.717: I/Web Console(19755): Position updated: latitude=50.64621738333334, longitude=-4.737011333333333, accuracy=12m
    at :1172318357
    10-24 21:11:29.717: I/Web Console(19755): Position updated: latitude=50.64621768333333, longitude=-4.7370187, accuracy=18m at
    :1172318357
    10-24 21:11:30.727: I/Web Console(19755): Position updated: latitude=50.64621798333333, longitude=-4.737026116666667, accuracy=18m
    at :1172318357