簡體   English   中英

PhoneGap Geolocation在特殊設備上始終處於超時狀態

[英]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 - 但沒有任何幫助。 謝謝。

我也面臨這個問題,主要是三星安卓設備。 我發現的是:

  1. 如果設備中沒有安裝SIM卡,則不會有GPS坐標(僅適用於某些設備)。

  2. 請確保您在Android清單中設置了<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

  3. 你應該設置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.

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