1

iPad / iPhoneでGeoLocation座標を特定するアプリを作成しましたが、デバイスでGPSが有効になっている場合でも、一部のAndroidデバイスでは特定できません。一部のAndroidデバイス(Samsung Galaxy tab SCH-I800など)と他のいくつかで失敗します(たとえば、Samsung GalaxyタブGT-P5113)。

問題の考えられる理由は何でしょうか?

サンプルコードスニペット:

 <script type="text/javascript" 
 src="http://maps.google.com/maps/api/js?sensor=true"></script>
 <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true">   </script>
    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>

function onDeviceReady()
{  
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}

var onSuccess = function(position) {

            pos = new google.maps.LatLng(position.coords.latitude,
                                         position.coords.longitude);
            lat=position.coords.latitude;
            lng=position.coords.longitude;
            alert("lat: "+lat+" long "+lng); //i should get the lat/long here which i need to use further in my code   
         }

アプリが機能していないデバイスの場合、onError関数になります。

function onError(error) {

      alert("error code is: "+error.code);//it gives error code 3 when on such devices


        }
4

4 に答える 4

1

これらのAndroidデバイスでGPSを使用するように時計を設定する場合は、「enableHighAccuracy」オプションを設定する必要があります。

navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });

この回答も参照してください:PhonegapAndroidおよびGPS衛星

于 2012-12-27T09:05:44.523 に答える
0

このエラーのため、アプリは機能しません。

PositionError.TIMEOUT

デバイスがgeolocationOptionsのtimeoutプロパティで指定された時間内に位置を取得できなかった場合に返されます。geolocation.watchPositionと組み合わせて使用​​する場合、このエラーはタイムアウトミリ秒ごとにgeolocationErrorコールバックに呼び出される可能性があります。

于 2012-12-27T12:14:33.370 に答える
0

「enableHighAccuracy」オプションを false に設定し、コード 2 エラー (時々発生する可能性があります) が発生した場合は、

に行く

メニュー --->設定---->場所とセキュリティ

そしてチェック

ワイヤレス ネットワークを使用します。

これで私の問題は解決しました。あなたの問題も解決することを願っています...!!

于 2013-04-28T13:48:00.253 に答える