2012-10-09 16 views
6

फोनगैप संस्करण: 2.0.0। एंड्रॉइड एपीआई स्तर 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, त्रुटि कोड 2 में कोई त्रुटि हो रही है। यहां तक ​​कि अगर भेज जीपीएस एंड्रॉयड कंसोल के माध्यम से निर्देशांक या डी डी एम एस

एंड्रॉयड प्रकट अनुमतियाँ:

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

उत्तर

6

आप केवल एम्युलेटर पर यह परीक्षण कर रहे हैं? जिओलोकेशन सेवा हमेशा मेरे एंड्रॉइड एमुलेटर में विफल रहता है लेकिन वास्तविक डिवाइस पर नहीं।

संपादित करें: निम्न कोड

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

function onDeviceReady() { 
    navigator.geolocation.getCurrentPosition(myPositionSuccess, myPositionError, {maximumAge: 300000, timeout:10000, enableHighAccuracy : true}); 
}; 
+0

मेरे पास एंड्रॉइड 2.3 संस्करण के साथ एक असली डिवाइस है, लेकिन 4.x संस्करण वाला डिवाइस नहीं है। तो मैं एमुलेटर में परीक्षण कर रहा हूँ। हां, असली डिवाइस में ऐसी कोई त्रुटि नहीं है। बस एमुलेटर में। –

+0

कृपया उस ईवेंट लिस्टर को जोड़ने का प्रयास करें। – jmpenetra

+0

@ JoãoPenetra मैंने इसे अपने कोड में जोड़ा और इसे किसी भी त्रुटि को वापस करने के लिए नहीं मिला! उसके लिए धन्यवाद! लेकिन ... अब यह मेरे JSONP अनुरोध को Google फ्यूजन टेबल्स को दोगुना करता है जो स्थान का भी उपयोग करता है। क्या आप किसी भी कारण से सोच सकते हैं कि यह 'enableHighAccuracy' का उपयोग करके दो कॉल क्यों करेगा? इसके बिना, यह केवल डेटा के 1 सेट देता है लेकिन पहले एक त्रुटि फेंकता है। यहां फ़ाइल है: https://github.com/jamez14/TrailFinder/blob/master/TrailFinder/www/js/map.js – jamez14

6

आप जब तुम स्थान प्राप्त करने के लिए कोशिश कर रहे हैं true को enableHighAccuracy विकल्प निर्धारित करने की आवश्यकता का उपयोग कर प्रयास करें। > ओपन परिप्रेक्ष्य - -

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

इसके अलावा, को निर्देशांक एमुलेटर में अपनी स्थिति की,

ग्रहण निर्दिष्ट> डी डी एम एस -> एम्यूलेटर नियंत्रण -> स्थान को नियंत्रित करता है

निर्दिष्ट करें स्थिति के निर्देशांक और प्रेस "भेजें" दबाएं।

0

मैंने इस मुद्दे को सप्ताहों के लिए ठीक करने का प्रयास किया है। मैं नेट की खोज करता हूं और ऐसा लगता है कि जब भी वे एंड्रॉइड के लिए विकास कर रहे हों तो ज्यादातर लोगों को फोनगैप के बारे में यह समस्या हो रही है। समाधान जीपीआरएस वाले डिवाइस पर मेरे कोड का परीक्षण करना था। यह भी सुनिश्चित करें कि आपके कोड को चलाने से पहले आपका जीपीआरएस और वाईफाई सक्षम है। जीपीआरएस का परीक्षण करने के लिए एमुलेटर का उपयोग करने से बचें क्योंकि बहुत सी फीचर्स गायब और बग हैं।

संबंधित मुद्दे