আইওএসে প্রোগ্রামিমেটিকভাবে স্লিপ মোডকে কীভাবে অক্ষম / সক্ষম করবেন?


162

আমার একটি অ্যাপ্লিকেশন রয়েছে যা অবশ্যই একটি কাউন্টডাউন শেষ হওয়া অবধি জাগ্রত থাকতে পারে তবে এটি যখনই ঘুমানোর জন্য বরাদ্দ সময় পৌঁছে যায় তখনই এটি 'স্লিপ মোডে' চলে যাবে।

আমার অ্যাপ্লিকেশনটিতে, আমার কাছে ঘুম স্থগিত করার বিকল্প রয়েছে, যাতে ব্যবহারকারীরা এটি অক্ষম / সক্ষম করতে পারেন।

আমি কীভাবে প্রোগ্রামটিমে এটি করব?

উত্তর:


379

আপনি নীচে নিষ্ক্রিয় টাইমার অক্ষম করতে পারেন;

উদ্দেশ্য-সি তে:

[UIApplication sharedApplication].idleTimerDisabled = YES;

সুইফটে:

UIApplication.sharedApplication().idleTimerDisabled = true

সুইফট ৩.০ এবং সুইফট ৪.০ এ:

UIApplication.shared.isIdleTimerDisabled = true

এটি ফিরিয়ে সেট করুন NOবা falseকরার ঘুম মোড পুনরায় সক্রিয় করুন।

উদাহরণস্বরূপ, আপনার যদি ভিউটি না ছেড়ে দেওয়া পর্যন্ত এটির প্রয়োজন হয় তবে আপনি ভিউইলডিস্পায়ারটিকে ওভাররাইড করে এটি আবার সেট করতে পারেন:

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

আরো UIApplication ক্লাস


@ গাতি আমার সন্দেহ আছে, তবে আমার কোনও ঘড়ি নেই বলে আমি নিশ্চিত করতে পারছি না
জুনটুরটন

1
@ জার্টার্টন হুম .. এটি আপেল ঘড়িতে কাজ করছে না। আপনি যদি এর জন্য কোনও সমাধান পেয়ে থাকেন তবে দয়া করে আমাকে জানান।
iGatiTech

এই তথ্যের জন্য ধন্যবাদ। এটা উপকারে আসবে। আমি ভাবছিলাম যে কোনও অ্যাপে স্লিপ মোডটি অক্ষম করা পুরো ডিভাইসটিকে প্রভাবিত করবে কিনা। আমি যদি আমার অ্যাপ্লিকেশনটিতে এটি অক্ষম করে এবং তারপরে অ্যাপটি প্রস্থান করি তবে অ্যাপ্লিকেশনটি বেরিয়ে যাওয়ার পরেও কি এটি অক্ষম থাকবে? এটি কি সক্রিয় আছে কিনা তা কি আমার যাচাই করা উচিত এবং তারপরে বেরোনোর ​​পথে এটি পুনরায় সক্ষম করা উচিত?
স্কট কিলবার্ন

2
@ স্কটকিলবর্ন এটি কেবল আপনার অ্যাপ্লিকেশনকে প্রভাবিত করে। আপনার অ্যাপ্লিকেশনটির কেবলমাত্র ইউআইএ অ্যাপ্লিকেশন অবজেক্টকে [UIApplication sharedApplication]বোঝায় ।
jrturton

22

সুইফ্ট 3-এ, নিষ্ক্রিয় টাইমারটি অক্ষম করার জন্য এটি এখন:

UIApplication.shared.isIdleTimerDisabled = true

নিষ্ক্রিয় টাইমার এটি আবার চালু করা সহজ:

UIApplication.shared.isIdleTimerDisabled = false

উপরন্তু, দয়া করে মনে রাখবেন YESএবং NOসুইফট উপলভ্য নয় আপনার ব্যবহৃত ওয়েবসাইট ও পারেন হবে যে trueবা false(যেমন পূর্ববর্তী উত্তর উল্টোদিকে)।


1

নিষ্ক্রিয় টাইমারটি অক্ষম করতে আইওএস 13, সুইফ্ট 5,5.1+ । ইন SceneDelegate.swift

 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
     UIApplication.shared.isIdleTimerDisabled = true
 }

-5

সুইফট 3 এ সঠিক অবস্থান যেখানে এটি করা যেতে পারে তা হল AppDelegate.swift- আপনার UIApplication.shared.isIdleTimerDisabled = trueভিতরে applicationফানক যুক্ত করা উচিত ফলস্বরূপ দেখতে হবে:

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

2
এটি অ্যাপডেলিগেটের উপর নির্ভরশীল নয়। আসলে আমি কোনও আসল কারণ ছাড়াই ডিভাইসটিকে জাগ্রত রাখা খারাপ অভ্যাস হিসাবে বিবেচনা করব। প্রশ্নটি ছিল একটি নির্দিষ্ট কার্যকারিতা চলাকালীন (একটি কাউন্টডাউন শেষ হওয়া পর্যন্ত) জাগ্রত রাখার বিষয়ে। সুতরাং কাউন্টডাউন শেষ হতে শুরু করলে অলস টাইমারটি অক্ষম করা পুনরায় কাউন্টডাউন শেষ হওয়ার পরে বিবেচনা করা উচিত।
মার্টিন

@ সাইরাস আমি সুইফ্ট প্রোগ্রামার নই। বর্তমানে আমি ওয়েবভিউ অ্যাপ্লিকেশন তৈরি করছি এবং সঠিক নির্দেশনা ছাড়াই আমি অনেকগুলি সমাধানের চেষ্টা করেছি এবং এটি আমার পক্ষে কাজ করে না, তবে এই কাজ করে। সুতরাং আমি অন্যদের সাথে ভাগ করে নেওয়ার জন্য এটি পোস্ট করছি যারা অনুরূপ সমাধানের সন্ধান করবে। এটি ব্যবহারের কারণ - আমার অ্যাপ্লিকেশনটি গিটার সহায়ক যা প্লে করার সময় সর্বদা জাগ্রত হওয়া দরকার
Godblessstrawberry
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.