Bagaimana cara mencegah layar iPhone meredup atau mati saat aplikasi saya berjalan?


114

Saya sedang mengerjakan aplikasi yang tidak memerlukan masukan pengguna, tetapi saya tidak ingin iPhone memasuki mode hemat daya.

Apakah mungkin untuk menonaktifkan penghematan daya dari aplikasi?


7
Ada apa dengan suara negatif pada semua pertanyaan terbaru? Ini sepertinya pertanyaan yang valid bagi saya.
Eric Schoonover

Jawaban:


172

Objective-C

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

Cepat

UIApplication.shared.isIdleTimerDisabled = true

2
Apakah penting di mana baris kode ini digunakan? Haruskah itu ada di AppDelegate atau viewcontroller utama App?

16
Itu tergantung pada bagaimana Anda berniat menggunakannya. Anda mungkin hanya memiliki satu tampilan yang tidak ingin Anda habiskan waktunya di aplikasi Anda. Dalam hal ini Anda akan menggunakannya di pengontrol tampilan itu (saat tampilan muncul). Untuk mengaktifkan kembali pengatur waktu yang kemudian Anda gunakan [[UIApplication sharedApplication] setIdleTimerDisabled:NO];saat tampilan menghilang.
Liam George Betsworth

2
Apakah aplikasi perlu mengaktifkan kembali pengatur waktu saat aplikasi kehilangan fokus, atau apakah ini ditangani secara otomatis oleh OS?
Stan James

5
Stan - ketika aplikasi mengundurkan diri aktif, OS akan mengaktifkan kembali mode siaga, Anda tidak perlu memanggil[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
Chris Stringer

IMHO tidak ada bedanya dari mana Anda menyebutnya. Itu selalu merupakan keseluruhan hit aplikasi dan setiap tampilan disimpan di layar, tidak redup.
dekade

20

Dengan cepat Anda dapat menggunakan ini sebagai

UIApplication.sharedApplication().idleTimerDisabled = true


2

Saya telah meletakkan baris kode ini di pengontrol tampilan saya namun kami masih mendapatkan pelanggan yang mengatakan layar akan meredup atau mati sampai seseorang menyentuh layar. Saya telah melihat posting lain di mana Anda tidak hanya mengatur programatik

UIApplication.sharedApplication().idleTimerDisabled = true 

menjadi benar tetapi Anda harus mengatur ulang ke salah terlebih dahulu

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

Sayangnya ini masih tidak berhasil dan pelanggan masih mendapatkan layar redup. Kami memiliki profil Apple Configurator yang mencegah perangkat untuk tidur, dan beberapa layar perangkat masih redup dan pelanggan perlu menekan tombol home untuk membangunkan layar. Sekarang saya memasukkan kode ini ke pengatur waktu yang menyala setiap 2.5 jam untuk mengatur ulang pengatur waktu idle, semoga ini akan berhasil.


1
Sayangnya, memasukkan kode ke dalam fungsi yang mengaktifkan pengatur waktu tidak memperbaiki masalah. Saya membiarkan iPad saya menyala selama lebih dari 24 jam dan iPad tidak meredup dan tidak ada interaksi. Menurut salah satu klien kami, pengguna menggunakan perangkat 15 menit sebelumnya dan kemudian perangkat menjadi redup.
JMStudios.jrichardson

Saya mengalami masalah yang sama: Saya memiliki pengontrol tampilan tempat saya menyetel idelTimerDisabled = true (aplikasi seharusnya tetap terbuka sepanjang malam, jam alarm), dan sebagian besar waktu berfungsi, tetapi terkadang aplikasi di latar belakang suatu saat di malam hari. Ada yang tahu apa yang bisa memindahkan aplikasi ke latar belakang? atau setel ulang benderanya?
Yariv Adam

Ya, Anda dapat menyetel ulang bendera dan saya juga melakukannya. Saya memiliki ini dalam sebuah fungsi juga. Ternyata itu adalah "proses pemalsuan" di server MDM kami yang mengirimkan ping ke perangkat kami untuk meredupkan layar. sangat menyebalkan.
JMStudios.jrichards

0

Kami mengalami masalah yang sama. Ternyata proses nakal di server MDM kami yang telah dihapus di akun kami tetapi di server masih mengirimkan perintah untuk meredupkan perangkat kami.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.