अद्यतन: आईओएस 8 (8.3, शायद) के कुछ संस्करणों के अनुसार, जीपीएस हार्डवेयर को हवाई जहाज मोड में भी चालू किया जा सकता है (यानी, आप हवाई जहाज मोड में भी जीपीएस स्थान प्राप्त कर सकते हैं)। यह इस सवाल को प्रस्तुत करता है।यह निर्धारित करना कि आईफोन पर हवाई जहाज मोड सक्षम है या नहीं?
-
क्या यह संभव है प्रोग्राम के निर्धारित करने के लिए एक iPhone हवाई जहाज मोड में है? मैं विशेष रूप से जानना चाहता हूं कि यह एयरप्लेन मोड में है, क्योंकि नेटवर्क कनेक्शन होने (या नहीं) के विपरीत। इस सवाल से बहुत कुछ पूछा गया है, लेकिन मैंने जो भी जवाब देखा है, वह यह निर्धारित करने के लिए ऐप्पल के रीचैबिलिटी कोड को संदर्भित करता है कि नेटवर्क कनेक्शन उपलब्ध है या नहीं।
मैं एक ऐप लिख रहा हूं जो आईफोन के जीपीएस का उपयोग करता है। फिलहाल, यदि हवाई जहाज मोड चालू है और मेरा ऐप लॉन्च किया गया है, तो मेरा स्थान प्रबंधक ऑब्जेक्ट अभी भी मौजूद प्रतीत होता है और अभी भी मुझे एक (कैश?) स्थान दे रहा है। स्टेटस बार में छोटा जीपीएस आइकन दिखाई देता है ताकि मुझे पता चल सके कि मेरा ऐप एक स्थान निर्धारित कर रहा है।
मुझे पता है कि फोन हवाई जहाज मोड में है, ताकि मैं स्थान प्रबंधक वस्तु आरंभ नहीं कर सकते हैं चाहता हूँ और मैं उपयोगकर्ता है कि कार्यक्षमता जीपीएस उपलब्ध नहीं है इंगित करने के लिए मेरी यूआई बदल सकते हैं।
जीपीएस कार्यक्षमता स्पष्ट रूप से नेटवर्क कनेक्टिविटी के बावजूद इस्तेमाल किया जा सकता है, इसलिए नेटवर्क कनेक्टिविटी की कमी मुझे हवाई जहाज मोड के लिए खराब प्रॉक्सी के रूप में मारती है। मुझे कोई विशिष्ट त्रुटियां नहीं मिलती हैं (स्थान प्रबंधक: didFailWithError के माध्यम से) जब हवाई जहाज मोड में, केवल एक सामान्य त्रुटि जो मैं मान रहा हूं वह कई स्रोतों से आ सकती है।
धन्यवाद। यही वह है जो मैंने कर दिया। – smacdonald
त्रुटि संदेश में उपयोगकर्ता को अन्य मामले का उल्लेख किया जाना चाहिए, यह है कि उन्हें यह सत्यापित करना चाहिए कि ऐप को जीपीएस डेटा तक पहुंच प्रदान की गई है। मेरे पास एक उपयोगकर्ता था कि ऐप टूटा हुआ था, केवल यह पता लगाने के लिए कि उसने अनुमति पॉप-अप पर "अनुमति न दें" मारा था। –
आपको 'locationManager: didFailWithError:' विधि में 'kCLErrorDenied' त्रुटि परिणाम प्राप्त करना चाहिए यदि उपयोगकर्ता ने आपके ऐप के लिए स्थान सेवाएं सक्षम नहीं की हैं। मुझे मामले के साथ सौदा करने के लिए एक विशिष्ट त्रुटि संवाद मिला है। यदि डिवाइस फ्लाइट मोड में है, तो आपको जेनेरिक 'केसीएलआरआरएल लोकेशन अज्ञात' त्रुटि मिलती है। – smacdonald