2012-09-30 11 views
129

मेरे पास एक ऐप है जो उलटी गिनती के अंत तक जागृत रहना चाहिए, लेकिन जब भी यह सोने के आवंटित समय तक पहुंच जाता है तो यह 'नींद मोड' में जाएगा।आईओएस में प्रोग्रामेटिक रूप से नींद मोड को अक्षम/सक्षम कैसे करें?

मेरे ऐप में, मेरे पास नींद स्थगित करने का विकल्प है, इसलिए उपयोगकर्ता इसे अक्षम/सक्षम कर सकते हैं।

मैं इसे प्रोग्रामेटिक तरीके से कैसे करूं?

उत्तर

314

आप निष्क्रिय टाइमर को निम्नानुसार अक्षम कर सकते हैं;

ऑब्जेक्टिव-सी में:

[UIApplication sharedApplication].idleTimerDisabled = YES; 

स्विफ्ट में:

UIApplication.sharedApplication().idleTimerDisabled = true 

स्विफ्ट 3.0 में & स्विफ्ट 4.0:

UIApplication.shared.isIdleTimerDisabled = true 

इसे वापस NO या false को सेट फिर से करने नींद मोड सक्षम करें।

उदाहरण के लिए, यदि आप इसे की जरूरत है जब तक आप दृश्य से बाहर निकलने आप इसे वापस सेट कर सकते हैं viewWillDisappear अधिभावी द्वारा:

override func viewWillDisappear(_ animated: Bool) { 
    UIApplication.shared.isIdleTimerDisabled = false 
} 

UIApplication Class के बारे में अधिक।

+1

सेब घड़ी के लिए यह काम करता है? – Gati

+0

@Gati मुझे शक है, लेकिन मैं पुष्टि नहीं कर सकता क्योंकि मेरे पास घड़ी नहीं है – jrturton

+1

@jrturton हम्म .. यह सेब घड़ी में काम नहीं कर रहा है। अगर आपको इसके लिए कोई समाधान मिला तो कृपया मुझे बताएं। – Gati

14

स्विफ्ट 3 में, निष्क्रिय टाइमर निष्क्रिय करने के लिए यह अब है:

UIApplication.shared.isIdleTimerDisabled = true 

निष्क्रिय टाइमर यह को फिर से चालू करने के लिए बस है: इसके अतिरिक्त

UIApplication.shared.isIdleTimerDisabled = false 

, ध्यान दें YES और NO हैं कि स्विफ्ट में उपलब्ध नहीं है और आपको true या false (पिछले उत्तर के विपरीत) का उपयोग करना होगा।

-3

स्विफ्ट में 3 सटीक स्थान जहां इस किया जा सकता है AppDelegate.swift है - आप application समारोह अंदर UIApplication.shared.isIdleTimerDisabled = true जोड़ना चाहिए ताकि परिणाम इस तरह दिखेगा:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    UIApplication.shared.isIdleTimerDisabled = true 
    return true 
} 
+0

यह ऐपडिलेगेट पर निर्भर नहीं है। असल में मैं किसी वास्तविक कारण के बिना डिवाइस को जागने के लिए इसे खराब अभ्यास मानता हूं। सवाल एक विशिष्ट कार्यक्षमता (उलटी गिनती के अंत तक) के दौरान डिवाइस को जागने के बारे में था। इसलिए जब उलटी गिनती समाप्त होती है तो निष्क्रिय टाइमर को अक्षम करना उलटी गिनती समाप्त होने के बाद इसे फिर से सक्षम करना चाहिए। – Cyrus

+0

@Cyrus मैं तेजी से प्रोग्रामर नहीं हूँ। वर्तमान में मैं वेबव्यू ऐप बना रहा हूं और मैंने बिना किसी निर्देश के बहुत सारे समाधान किए हैं और यह मेरे लिए काम नहीं करता है, लेकिन यह काम करता है।इसलिए मैं इसे दूसरों के साथ साझा करने के लिए पोस्ट करता हूं जो समान समाधान की तलाश करेंगे। इसका उपयोग करने का कारण - मेरा ऐप गिटार सहायक है जिसे खेलने के दौरान हमेशा जागने की जरूरत होती है – godblessstrawberry

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