6

PhoneGap バージョン: 2.0.0。Android API レベル 16 (4.0.3 バージョン)。エラーを表示するコード サンプル:

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

function onSuccess(position) {
    console.log('latitude: '+ position.coords.latitude);
    console.log('longitude: '+ position.coords.longitude);                  
}

function onError(error) {
    console.log('Appeared error : '+ error.message);                
}

エミュレーターで常にエラーが発生しますFailed to start Geolocation service、エラーコード2Android コンソールまたはDDMSを介して GPS 座標を送信しても

Android マニフェストのアクセス許可:

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

3 に答える 3

6

enableHighAccuracy場所を取得しようとしているときに、オプションをに設定する必要がありtrueます。

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

さらに、エミュレータでの位置の座標を指定するには、

Eclipse-> Open Perspective-> DDMS-> Emulator Control-> Location Controls

位置の座標を指定して「送信」を押します。

于 2012-12-08T09:57:57.390 に答える
6

これをエミュレーターでのみテストしていますか? Geolocation Service は、Android エミュレーターでは常に失敗しますが、実際のデバイスでは失敗しません。

編集:次のコードを使用してみてください

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    navigator.geolocation.getCurrentPosition(myPositionSuccess, myPositionError, {maximumAge: 300000, timeout:10000, enableHighAccuracy : true});
};
于 2012-10-23T22:25:32.943 に答える