Uygulamam çalışırken iPhone ekranının kararmasını veya kapanmasını nasıl önleyebilirim?


114

Kullanıcı girişi gerektirmeyen bir uygulama üzerinde çalışıyorum ancak iPhone'un güç tasarrufu moduna girmesini istemiyorum.

Bir uygulamadan güç tasarrufunu devre dışı bırakmak mümkün mü?


7
Son sorulardaki olumsuz oylar ne durumda? Bu benim için geçerli bir soru gibi görünüyor.
Eric Schoonover

Yanıtlar:


172

Objective-C

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

hızlı

UIApplication.shared.isIdleTimerDisabled = true

2
Bu kod satırının nerede kullanıldığı önemli mi? AppDelegate'te mi yoksa Uygulamanın ana görüntü denetleyicisinde mi olmalı?

16
Bu, onu nasıl kullanmayı düşündüğünüze bağlıdır. Başvurunuzda zaman aşımına uğramasını istemediğiniz tek bir görünüme sahip olabilirsiniz. Bu durumda, onu o görünüm denetleyicisinde kullanırsınız (görünüm göründüğünde). [[UIApplication sharedApplication] setIdleTimerDisabled:NO];Görünüm kaybolduğunda kullanacağınız zamanlayıcıyı yeniden etkinleştirmek için .
Liam George Betsworth

2
Uygulama odağı kaybettiğinde uygulamanın zamanlayıcıyı yeniden etkinleştirmesi gerekiyor mu yoksa bu, işletim sistemi tarafından otomatik olarak mı işleniyor?
Stan James

5
Stan - Uygulamanın etkin istifa zaman, işletim sistemi yeniden sağlayacak boşta modu, sen do not aramak zorunda[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
Chris Stringer

IMHO, bunu nereden adlandırdığınızdan hiçbir farkı yok. Her zaman uygulamanın tamamı vurulur ve her görünüm soluk değil ekranda tutulur.
on yıllar

20

Gelen Swift bu kadar kullanabilirsiniz

UIApplication.sharedApplication().idleTimerDisabled = true


2

Bu kod satırını görüntüleme denetleyicime koydum, ancak yine de müşterilerin, birisi ekrana dokunana kadar ekranın kararacağını veya kapanacağını söylemesini sağlıyoruz. Sadece programlı olarak ayarlamadığınız başka gönderiler de gördüm

UIApplication.sharedApplication().idleTimerDisabled = true 

doğru ama önce onu yanlış olarak sıfırlamalısın

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

Maalesef bu hala işe yaramadı ve müşteriler hala ekranların soluklaşmasına neden oluyor. Aygıtın uykuya geçmesini engelleyen Apple Configurator profilimiz var ve yine de bazı aygıtların ekranı kararıyor ve müşterinin ekranı uyandırmak için ana sayfa düğmesine basması gerekiyor. Şimdi bu kodu, boşta kalma zamanlayıcısını sıfırlamak için her 2,5 saatte bir ateşleyen bir zamanlayıcıya koyuyorum, umarım bu işe yarar.


1
Maalesef, kodu bir zamanlayıcıda çalışan bir işleve koymak sorunu çözmedi. İPad'imi 24 saatten fazla açık bıraktım ve kararmadı ve etkileşim olmadı. Müşterilerimizden birine göre, cihazı 15 dakika önce bir kullanıcı kullandı ve ardından cihaz kararmıştı.
JMStudios.jrichardson

Aynı sorunu yaşıyorum: idelTimerDisabled = true (uygulamanın gece boyunca açık kalması gerekiyor, bir çalar saat) ve çoğu zaman çalışıyor, ancak bazen uygulama arka planda çalışıyor bazen gece boyunca. Uygulamayı arka plana neyin taşıyabileceği konusunda bir fikri olan var mı? veya bayrağı sıfırlamak mı?
Yariv Adam

Evet bayrağı sıfırlayabilirdiniz ve ben de bunu yapıyordum. Bunu bir işlevde de yaptım. MDM sunucumuzda, ekranları karartmak için cihazlarımıza pingler gönderen bir "yönlendirme işlemi" olduğu ortaya çıktı. Çok sinir bozucu.
JMStudios.jrichardson

0

Aynı sorunu yaşıyorduk. MDM sunucumuzda, hesabımızda silinen ancak sunucuda hala cihazlarımızı karartmak için komut gönderen hileli bir işlem olduğu ortaya çıktı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.