अपने एप्लिकेशन के चलने के दौरान मैं iPhone स्क्रीन को डिमिंग या बंद होने से कैसे रोकूं?


114

मैं एक ऐसे ऐप पर काम कर रहा हूं जिसके लिए किसी उपयोगकर्ता इनपुट की आवश्यकता नहीं है, लेकिन मैं नहीं चाहता कि iPhone पावर सेविंग मोड में प्रवेश करे।

क्या किसी ऐप से बिजली की बचत को निष्क्रिय करना संभव है?


7
हाल के सभी सवालों पर क्या गिरावट आई है? यह मुझे एक वैध प्रश्न लगता है।
एरिक शूनओवर

जवाबों:


172

उद्देश्य सी

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

तीव्र

UIApplication.shared.isIdleTimerDisabled = true

2
क्या यह मायने रखता है कि इस कोड ऑफ़ लाइन का उपयोग कहाँ किया जाता है? क्या यह ऐपडेलगेट या ऐप के मुख्य दृश्य केंद्र में होना चाहिए?

16
यह इस बात पर निर्भर करता है कि आप इसे इस्तेमाल करने का इरादा कैसे रखते हैं। आपके पास केवल एक ही दृश्य हो सकता है कि आप अपने आवेदन में टाइमआउट नहीं करना चाहते हैं। इस स्थिति में आप इसका उपयोग उस व्यू कंट्रोलर (जब दृश्य दिखाई देता है) में करेंगे। [[UIApplication sharedApplication] setIdleTimerDisabled:NO];जब दृश्य गायब हो जाता है तब टाइमर का आप फिर से उपयोग कर सकेंगे ।
लियाम जॉर्ज बेट्सवर्थ

2
क्या ऐप ने टाइमर को फिर से सक्षम करने की आवश्यकता है जब ऐप ने अपना ध्यान केंद्रित किया है, या क्या यह ओएस द्वारा स्वचालित रूप से नियंत्रित किया जाता है?
स्टेन जेम्स

5
स्टेन - जब ऐप सक्रिय रूप से इस्तीफा दे देता है, तो ओएस निष्क्रिय मोड को फिर से सक्षम करेगा, आपको कॉल करने की आवश्यकता नहीं है[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
क्रिस स्ट्रिंगर

IMHO इससे कोई फर्क नहीं पड़ता कि आप इसे कहां से कॉल करते हैं। यह हमेशा पूरे ऐप को हिट करता है और प्रत्येक दृश्य को स्क्रीन पर रखा जाता है, मंद नहीं।
दशकों

20

में तेजी से आप इस के रूप में उपयोग कर सकते हैं

UIApplication.sharedApplication().idleTimerDisabled = true


2

मैंने अपने व्यू कंट्रोलर में कोड की इस लाइन को डाल दिया है, फिर भी हम ग्राहकों को यह कहते हुए मिल जाते हैं कि जब तक कोई स्क्रीन को टच नहीं करेगा तब तक स्क्रीन डिम या बंद रहेगी। मैंने अन्य पोस्ट देखी हैं जहां न केवल आप प्रोग्राम सेट करते हैं

UIApplication.sharedApplication().idleTimerDisabled = true 

सच करने के लिए, लेकिन आपको इसे पहले झूठे पर रीसेट करना होगा

UIApplication.sharedApplication().idleTimerDisabled = false
UIApplication.sharedApplication().idleTimerDisabled = true

अफसोस की बात है कि यह अभी भी काम नहीं किया और ग्राहकों को अभी भी मंद स्क्रीन मिल रही है। हमारे पास Apple विन्यासकर्ता प्रोफ़ाइल है जो डिवाइस को नींद में जाने से रोकती है, और फिर भी कुछ डिवाइस स्क्रीन मंद हो जाती हैं और ग्राहक को स्क्रीन को जगाने के लिए होम बटन को दबाने की आवश्यकता होती है। मैंने अब इस कोड को एक टाइमर में डाल दिया है जो निष्क्रिय टाइमर को रीसेट करने के लिए हर 2.5 घंटे में आग लगाता है, उम्मीद है कि यह काम करेगा।


1
अफसोस की बात है कि कोड को एक फ़ंक्शन में रखा गया है जो टाइमर पर फायर करता है और समस्या को ठीक नहीं करता है। मैंने अपने iPad को 24 घंटे से अधिक समय तक छोड़ दिया और यह मंद नहीं हुआ और कोई बातचीत नहीं हुई। हमारे ग्राहकों में से एक के अनुसार एक उपयोगकर्ता ने डिवाइस को 15 मिनट पहले इस्तेमाल किया और फिर डिवाइस मंद हो गया।
JMStudios.jrichardson

मुझे एक ही समस्या हो रही है: मेरे पास एक दृश्य नियंत्रक है जहां मैंने idelTimerDisabled = true सेट किया है (एप्लिकेशन को रात, अलार्म घड़ी के माध्यम से खुला रहना चाहिए), और अधिकांश समय यह काम करता है, लेकिन कभी-कभी ऐप को बैकग्राउंड किया जाता है कभी रात के दौरान। किसी को भी एक विचार है कि ऐप को पृष्ठभूमि में क्या स्थानांतरित कर सकता है? या ध्वज को रीसेट करें?
यारिव एडम

हाँ, आप ध्वज को रीसेट कर सकते हैं और मैं भी यही कर रहा था। एक समारोह में भी मेरे पास यही था। यह बताता है कि यह हमारे एमडीएम सर्वर पर "रूज प्रक्रिया" थी जो स्क्रीन को मंद करने के लिए हमारे उपकरणों को पिंग भेजती थी। बहुत कष्टप्रद।
JMStudios.jrichardson

0

हम एक ही मुद्दे पर चल रहे थे। हमारे एमडीएम सर्वर पर एक दुष्ट प्रक्रिया है जो हमारे खाते में हटा दी गई थी, लेकिन सर्वर पर अभी भी अपने उपकरणों को मंद करने के लिए कमांड भेज रहा था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.