2012-06-27 11 views
6

का उपयोग करते समय मैं WinRT Geolocator उपयोग करते हैं, मैं कई मायनों त्रुटि मिलती है: फिर"पाइप बंद किया जा रहा है" जब WinRT Geolocator

{"The pipe is being closed. (Exception from HRESULT: 0x800700E8)"} 

, इस छिटपुट है। कोई सुझाव?

Windows.Devices.Geolocation.Geoposition _Postion = null; 
try 
{ 
    var _Locator = new Windows.Devices.Geolocation.Geolocator(); 
    _Postion = await _Locator.GetGeopositionAsync(); 
} 
catch { /* continue, null okay */ } 

if (_Postion == null) 
{ 
    /* use alternate */ 
} 
else 
{ 
    /* use location */ 
} 

यह सिम्युलेटर में है, लेकिन स्थानीय मशीन पर चलने पर भी। आमतौर पर यह त्रुटि एक ब्रेक में परिणाम नहीं देगा। यह अचानक ऐप को समाप्त करता है। जब इसका परिणाम ब्रेक होता है। यह परिणामी त्रुटि है।

+1

जब तक आप कोड पोस्ट हम आपकी मदद नहीं कर सकते हैं। जब आप कोड पोस्ट करेंगे तो मैं अपना डाउनवोट ले जाऊंगा। –

+1

@ जेरी निक्सन अच्छा है, आपके कोड उदाहरण ने मुझे असहनीय Winrt त्रुटि संदेश को समझने में मदद की – Calanus

+0

@ जेरी निक्सन क्या आप इसके समाधान के लिए मेरी मदद कर सकते हैं? जब मैं अपने विंडोज स्टोर ऐप को सेलुलर नेटवर्क के साथ टैबलेट में चलाता हूं तो मुझे यह त्रुटि मिल रही है। –

उत्तर

1

मुझे पता चला कि यह तब हुआ जब आपका स्थानीयकरण "अनुरूपित" के रूप में सेट किया गया है, यदि आप डिवाइस सिम्युलेटर का उपयोग करके अपना ऐप चला रहे हैं तो आप इसे विश्व आइकन (डिस्प्ले और कैमरा सेटिंग्स के बीच) पर क्लिक करके अक्षम कर सकते हैं, फिर "उपयोग को अनचेक करें नकली स्थान "विकल्प

+0

हमें टैबलेट में यह विकल्प कहां मिलता है? –

0

मुझे लगता है कि इस मुद्दे के लिए मूल कारण यह है कि GeoLocator स्थान API का उपयोग कर रहा है।

आपको जो त्रुटि मिल रही है वह है HRESULT_FROM_WIN32 (ERROR_NO_DATA), जो दोस्ताना (लेकिन अनुपयोगी, इस मामले में) स्ट्रिंग को मैप करने के लिए प्रतीत होता है "पाइप बंद हो रहा है।" यह अपेक्षित त्रुटि है जब मंच आपके सेंसर को वैध रिपोर्ट प्रदान नहीं करता है।

0

मुझे भी मेरी परियोजना में एक समान स्पोराडिक अपवाद का सामना करना पड़ा। मैंने संलग्न छवि स्क्रीनशॉट को देखो। enter image description here

यहां समाधान है जो मेरे लिए काम करता है, लेकिन मुझे यकीन नहीं है कि यह दूसरों के लिए काम करेगा या नहीं।

Geolocator loc = new Geolocator(); 
try 
{ 
     loc.DesiredAccuracy = PositionAccuracy.High; 

     Geoposition pos = await loc.GetGeopositionAsync(); 
     var lat = pos.Coordinate.Point.Position.Latitude; 
     var lang = pos.Coordinate.Point.Position.Longitude; 
     Status = loc.LocationStatus; 

     return GetGpsInfoObject(pos); 
} 
catch (System.UnauthorizedAccessException) 
{ 
     return null; 
} 

मैं करने के लिए कोड बदल दिया है::

यह मेरा कोड पहले था

Geolocator loc = new Geolocator(); 
try 
{ 
     loc.DesiredAccuracy = PositionAccuracy.High; 

     Geoposition pos = await loc.GetGeopositionAsync(); 
     var lat = pos.Coordinate.Point.Position.Latitude; 
     var lang = pos.Coordinate.Point.Position.Longitude; 
     Status = loc.LocationStatus; 

     return GetGpsInfoObject(pos); 
} 
catch (Exception) 
{ 
      return null; 
} 
+0

तो जब कोई अपवाद खुश होता है तो बस 'शून्य' वापस आते हैं? – demo

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