2012-12-05 11 views
9

पर कंपास अंशांकन स्विच स्थिति का पता लगाने के लिए मैं वर्तमान में CLLocationManager के साथ काम कर रहा हूं और डिवाइस के वर्तमान शीर्षक के बारे में सूचित होना चाहता हूं। अब तक सब कुछ ठीक काम करता है, सुविधाओं को लागू किया जाता है और अब मैं अपने ऐप को पॉलिश करने का प्रयास करता हूं।आईओएस

एक कोने का मामला है, यदि उपयोगकर्ता उपयोगकर्ता सेटिंग्स में compass calibration ध्वज बंद कर देगा तो अपडेटिंग अपडेट मेरे ऐप पर और नहीं भेजे जाएंगे। ऐसे मामले में मैं उपयोगकर्ता को कुछ फीडबैक देना चाहता हूं, कि उसे फिर से कंपास अंशांकन चालू करना होगा अन्यथा मेरा ऐप काम नहीं करेगा।

मुझे पता चला कि उपयोगकर्ता मेरे ऐप के लिए location services बंद कर देता है, फिर भी मुझे चुंबकीय शीर्षक प्राप्त होगा। लेकिन यदि उपयोगकर्ता द्वारा "कंपास अंशांकन" सेटिंग चालू की जाएगी, तो मुझे अब शीर्षक अपडेट नहीं मिलेगा। लेकिन मैं CoreLocation ढांचे के माध्यम से कैसे पहचान सकता हूं कि "कंपास अंशांकन" बंद कर दिया गया था?

"CLLocationManagerDelegate" मुझे

- (void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status 

विधि के माध्यम से एक अद्यतन देता है। लेकिन स्थिति केवल तभी इंगित करती है जब "ऐप के लिए" स्थान सेवाएं "सक्रिय हों।

मैं भी

- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error 

delegate विधि के माध्यम से कुछ वैध जानकारियां प्राप्त करने की कोशिश किसी भी सफलता नहीं मिली।

CoreLocation ढांचे में कुछ ऐसा है जो मुझे बता सकता है कि "कंपास अंशांकन" ध्वज चालू/बंद है या नहीं।

+1

क्या आपने कभी इसके लिए कोई जवाब प्राप्त किया है? –

उत्तर

4

जो मैंने पाया है, newHeading.trueHeadinglocationManager:didUpdateHeading:-1 होना चाहिए यदि कंपास अंशांकन बंद है। ऐसा करना चाहिए:

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading 
{ 
    if(newHeading.trueHeading == -1) 
     //Compass calibration is off provided location services are on for the app 
} 
+0

धन्यवाद! मुझे ठीक इसी की आवश्यकता थी। मैं सीधे अपने ऐप में शीर्षक का उपयोग नहीं कर रहा हूं (मैं कोर मोशन का उपयोग कर रहा हूं) इसलिए मैंने 'didUpdateHeading' विधि को भी लागू नहीं किया था और जैसा कि मुझे चाहिए, संबंधित दस्तावेज को ध्यान से नहीं देखा। –

+0

खुशी है कि मैं मदद कर सकता हूँ :) – Rick