[英]PhoneGap Geolocation get always a timeout on special devices
我使用帶有PhoneGap Build的cordova 2.9.0。 我寫了一個應用程序,用戶可以在特殊時間登記特殊位置。 我的問題是,當我在各種設備上安裝de app時,我總會得到一個時間(這只發生在Android設備上)。 當我重新啟動設備時,地理定位工作,我得到了gps數據。 現在我想知道是否有其他方法可以解決這個問題。 我在deviceReady函數中的地理定位代碼是:
var geo = cordova.require('cordova/plugin/geolocation');
var optionsGeo = {maximumAge: 0, timeout: 30000, enableHighAccuracy: false};
var watchID = geo.watchPosition(onSuccessGeo, errorGeo, optionsGeo);
function onSuccessGeo(position) {
lat = (position.coords.latitude).toFixed(6);
lon = (position.coords.longitude).toFixed(6);
accuracy = (position.coords.accuracy).toFixed(0);
console.log("Lat " + lat + " Lon " + lon + " & " + accuracy + "m");
}
function errorGeo(error) {
console.log("Geo-Fehler! Code: " + error.code + " Nachricht: " + error.message);
}
我嘗試過不同的超時值和啟用的HighAccuracy - 但沒有任何幫助。 謝謝。
我也面臨這個問題,主要是三星安卓設備。 我發現的是:
如果設備中沒有安裝SIM卡,則不會有GPS坐標(僅適用於某些設備)。
請確保您在Android清單中設置了<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
。
你應該設置enableHighAccuracy:true
請看下面我的設置:
var options = {maximumAge: 0, timeout: 10000, enableHighAccuracy:true}; navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
enableHighAccuracy提供應用程序希望獲得最佳結果的提示。 默認情況下,設備將嘗試使用基於網絡的方法檢索位置。 將此屬性設置為true會使框架使用更准確的方法,例如衛星定位。
在某些情況下,開發人員使用geolocation.watchPosition來獲得更准確的gps結果。 你也可以試試嗎?
我希望它有所幫助!
我知道這個問題已經過時但我今天遇到了同樣的問題,使用了Cordova 3.5.0和geolocation插件(org.apache.cordova.geolocation 0.3.8)。
我通過在設備(Android)上啟用GPS“HighAccuracy”模式解決了這個問題。 (設置 - >位置訪問 - >模式)。
app-user得到一個提示,他需要啟用此選項才能使用該應用程序...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.