2012-02-29 20 views
12

पर चमक पुनर्स्थापित करने में असमर्थ मैं अपने अनुप्रयोग में एक सुविधा (संगीतकारों के लिए एक metronome अनुप्रयोग) आदेश बैटरी जीवन पर बचाने के लिए स्क्रीन को मंद करने के लिए है। चमक सेट करने के लिए, मैं उपयोग कर रहा हूँ:आवेदन बाहर निकलें

[UIScreen mainScreen].brightness = 0.1; 

मैं एप्लिकेशन पर मूल चमक बचत कर रहा हूँ viewDidLoad (...) में शुरू करने और बचत कि मेरे उपयोगकर्ता डिफ़ॉल्ट पर।

जब अनुप्रयोग के भीतर विचारों को बदलने, मैं उपयोगकर्ता चूक से मूल चमक को पुनः प्राप्त करने और एक कॉल के साथ बहाल:

[UIScreen mainScreen].brightness = originalBrightness; 

यह ठीक काम करता है। मेरे पास NSLog (...) संदेश मूल मूल्य दिखा रहा है, आदि ... इसलिए तंत्र काम करता है।

मुद्दा मैं कर रहा हूँ कैसे आवेदन बाहर निकलने पर मूल चमक बहाल करने के लिए के रूप में होम बटन दबाया जाता है। वे एक साथ इसी तरह के NSLog ध्यान में रखते हुए पहले की तरह स्क्रीन चमक स्थापित करने के लिए एक विधि कॉल (...) है

applicationWillResignActive(...) 
applicationDidEnterBackground(...) 
applicationWillTerminate(...) 

दिखा है:

मैं के लिए अपने आवेदन प्रतिनिधि तरीकों के समान कोड जोड़ लिया है मूल चमक पुनर्प्राप्त ... और यह सब सही है। मैंने भी डीबग किया है और चमक सेट करने के लिए कॉल किए जा रहे हैं ... लेकिन ऐप निकलता है, और डिवाइस स्क्रीन अभी भी निचले, मंद स्तर पर है।

अंत में, यदि आप शीर्ष पर "ताला" बटन पर क्लिक करके होम बटन यह जगा अप करने के लिए प्रेस ... चमक सही है।

मेरे संदेह है कि जो कुछ भी कार्रवाई या ईवेंट मेरी चमक जब अनुप्रयोग बाहर निकलने के माध्यम से हो रही है, शायद किसी अमान्य स्थिति या इसी तरह की वजह से स्थापित करने के लिए कॉल के साथ शुरू हो रहा है है।

इसके अलावा, मेरे ऐप पृष्ठभूमि में नहीं चलाने के लिए सेट, के रूप में Info.plist में स्थापित किया जाएगा:

Application does not run in background  YES 

किसी भी मदद की सराहना की जाएगी।

धन्यवाद!

+1

इन निजी एपीआई हैं? मैं यूआईस्क्रीन कक्षा में मुख्यविंडो या मेनविंडोज़ (टाइपो?) गुणों को नहीं देख रहा हूं। क्या आपका मुख्य स्क्रीन है? – picciano

+0

हां, मेरे हिस्से पर टाइपो। मैं '[यूआईस्क्रीन मुख्य स्क्रीन] है .ब्रાઇટनेस = वैल;' या [[यूआईस्क्रीन मुख्य स्क्रीन] सेटबैरनेस: वैल]; ' – Cal30

+0

मुझे पूरा यकीन है कि इस सेटिंग को आपके ऐप के बाहर लगातार बनाने का कोई तरीका नहीं है। ऐप्पल का दस्तावेज विशेष रूप से यह नहीं कहता है लेकिन मैंने दो अन्य चमक-बदलते ऐप्स देखे हैं, जहां यह मामला है। कोई [यहां] (http: // stackoverflow।कॉम/ए/790133 9/76810) समवर्ती। – SSteve

उत्तर

1

आईओएस उस ऐप को बाहर निकलने से पहले थोड़ा सा समय देता है। आप चमक स्थापित करने के बाद एक सेकंड के एक अंश के लिए sleep आज़मा सकते हैं।

+0

@piccano मैंने कोशिश की कि यहां पोस्ट करने के बाद, लेकिन प्रतिनिधि में कोई फायदा नहीं हुआ। मैंने कोशिश की: [कोड] नींद() [/ कोड] के साथ ही [कोड] [थ्रेड नींदफोरटाइम इंटरवल:] [/ कोड] लेकिन कोई बदलाव नहीं। – Cal30

0

आप पढ़ सकते हैं https://devforums.apple.com/thread/139813 ध्यान से यह कहा गया है कि चमक परिवर्तनों को स्थायी नहीं हैं। मूल उपयोगकर्ता चमक वापस आती है, जब आप लॉक बटन दबाते हैं और इसे फिर से अनलॉक करते हैं।

इस के साथ
- (void)applicationDidBecomeActive:(UIApplication *)application{ 
    [self setBrightness]; 
} 
0

था ज्यादा खुशी: वास्तव में, मैं जब तक मेरी एप्लिकेशन चल रहा है मेरे ऐप चमक बहाल करने के लिए करता है, तो उपयोगकर्ता लॉक बटन दबाता था। वर्कअराउंड एक ViewController viewWillDisappear पर चमक को रीसेट करना था। नहीं एक महान समाधान लेकिन केवल एक मैं अब तक काम करने के लिए मिल गया है (इस साल के लिए टूट गया है ...)

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