簡體   English   中英

Phonegap Android Geolocation watchPosition超時

[英]Phonegap Android Geolocation watchPosition timeout

我正在使用Cordova 3.0.0,三星Galaxy S3 4.1.2進行測試。

當我測試Phonegap完整示例以觀察位置時: http ://docs.phonegap.com/en/edge/cordova_geolocation_geolocation.md.html#geolocation.watchPosition

我得到一個帶coords的第一行,然后我得到了錯誤:

code 3
message : Position retrieval timed out.

並且不會返回其他位置。 我的iPhone上的代碼相同。 我在走路時測試,當我在車里時也是如此。

我注意到當我在Android設備上使用谷歌地圖時,頂部欄上會彈出一個gps圖標。 當我啟動我的應用程序時,它不在這里。

Manifest已正確設置權限,我的選項是:

var options = { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true };
watchID = navigator.geolocation.watchPosition( onSuccess, onError, options );

我的應用程序需要精確工作......

感謝幫助。

好的,經過幾個小時的測試后,我設法使用Cordova 3.1.0在Android上運行watchPosition。

你需要做的:使用html5 only api進行地理定位,不要包括: http//cordova.apache.org/docs/en/3.1.0/cordova_geolocation_geolocation.md.html#Geolocation

如果您已經在projet中使用它,請通過CLI將其刪除:cordova plugin rm org.apache.cordova.geolocation

當然,在你的android清單中保留這些行:

< uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
< uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
< uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

這對我有用,請告訴我它是否適合你。 如果需要,我會發布代碼(但是完整的示例工作例如)

也許這可以幫助你:

我剛剛發現了Cordova / PhoneGap中的一個大問題: - 當你打開由cordova構建的Android項目時(在命令行中),requestUpdate設置為..... 60秒!!!!!!!!!!! 每分鍾都有一個新的位置! 即使你使用GPS(enableHighAccuracy =“true”)。 所以嘗試將其設置為1000,在org.apache.cordova.geolocation包中找到LocationManager.GPS_PROVIDER - > GPSListener類!

是的,你說得對,Phonegap v3.x中的地理位置似乎有問題 - 我安裝了3.1.0-0.15.0。 我看到的相同:一個正確的位置,然后是超時錯誤,觸發觀察者的清除/重新添加,然后是正確的位置。 在Phonegap 2.9.0上運行相同的測試應用程序,它工作正常,成功檢索位置。 這次我使用了選項{ maximumAge: 0, timeout: 30000, enableHighAccuracy: true };

看看你是否得到了相同的結果: 這里是v3.1.0項目和APK這里是v2.9.0項目和APK

這是我使用Phonegap 3.1.0構建它時的logcat:

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

當我使用Phonegap v2.9.0構建它時,這是來自完全相同的應用程序的logcat:

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

我確實解決了將此行添加到清單的問題:

<uses-permission android:name="android.permission.INTERNET" />

默認情況下,CLI命令不會將此行添加到清單。

你必須允許該應用程序使用wifi和手機天線獲得該位置

我正在測試使用這條線,但沒有區別:

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

我已經更改了在此行的app / src / org.apache.cordova.geolocation中的文件GPSListener.java中獲取新位置的時間:

this.locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0, this);

我確實在2000年改變了60000,但沒有區別。

我的設備是i9300與Android 4.3

我希望這些信息可以幫助別人!

問候!

首先確保您的代碼沒有錯誤! 如果你確定那么你還需要做一件事! 只需更改Android設備的安全設置即可。 轉到設置 - >安全性 - >選中“未知來源”復選框,以允許您的apk運行沒有任何問題。

希望它能像我一樣工作!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM