ฉันจะป้องกันไม่ให้หน้าจอ iPhone ลดแสงหรือปิดในขณะที่แอปพลิเคชันของฉันทำงานได้อย่างไร


114

ฉันกำลังทำงานกับแอพที่ไม่จำเป็นต้องป้อนข้อมูลจากผู้ใช้ แต่ฉันไม่ต้องการให้ iPhone เข้าสู่โหมดประหยัดพลังงาน

สามารถปิดการประหยัดพลังงานจากแอพได้หรือไม่?


7
อะไรคือการโหวตลงคะแนนสำหรับคำถามล่าสุดทั้งหมด? นี่เป็นคำถามที่ถูกต้องสำหรับฉัน
Eric Schoonover

คำตอบ:


172

Objective-C

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

รวดเร็ว

UIApplication.shared.isIdleTimerDisabled = true

2
รหัสบรรทัดนี้มีความสำคัญหรือไม่? ควรอยู่ใน AppDelegate หรือ Viewcontroller หลักของ App หรือไม่?

16
ขึ้นอยู่กับว่าคุณตั้งใจจะใช้มันอย่างไร คุณอาจมีเพียงมุมมองเดียวที่คุณไม่ต้องการหมดเวลาในแอปพลิเคชันของคุณ ในกรณีนี้คุณจะใช้ในตัวควบคุมมุมมองนั้น (เมื่อมุมมองปรากฏขึ้น) หากต้องการเปิดใช้งานตัวจับเวลาอีกครั้งคุณจะใช้[[UIApplication sharedApplication] setIdleTimerDisabled:NO];เมื่อมุมมองหายไป
Liam George Betsworth

2
แอปจำเป็นต้องเปิดใช้งานตัวจับเวลาอีกครั้งเมื่อแอปสูญเสียโฟกัสหรือระบบปฏิบัติการนี้จัดการโดยอัตโนมัติหรือไม่
Stan James

5
Stan - เมื่อแอปหยุดทำงานระบบปฏิบัติการจะเปิดใช้งานโหมดว่างอีกครั้งคุณไม่ต้องโทร[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
Chris Stringer

IMHO ไม่แตกต่างจากที่ที่คุณเรียกสิ่งนี้ มันมักจะเป็นแอพทั้งหมดที่เข้าชมและแต่ละมุมมองจะถูกเก็บไว้บนหน้าจอไม่หรี่แสง
ทศวรรษ



2

ฉันได้ใส่รหัสบรรทัดนี้ในตัวควบคุมมุมมองของฉัน แต่เรายังคงได้รับลูกค้าว่าหน้าจอจะหรี่ลงหรือปิดจนกว่าจะมีคนแตะหน้าจอ ฉันเคยเห็นโพสต์อื่น ๆ ที่คุณไม่เพียงตั้งค่าด้วยโปรแกรมเท่านั้น

UIApplication.sharedApplication().idleTimerDisabled = true 

เป็นจริง แต่คุณต้องรีเซ็ตเป็นเท็จก่อน

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

น่าเสียดายที่สิ่งนี้ยังไม่ได้ผลและลูกค้ายังคงได้รับหน้าจอที่มืดลง เรามีโปรไฟล์ Apple Configurator ที่ป้องกันไม่ให้อุปกรณ์เข้าสู่โหมดสลีปและหน้าจอของอุปกรณ์บางส่วนยังมืดลงและลูกค้าต้องกดปุ่มโฮมเพื่อปลุกหน้าจอ ตอนนี้ฉันใส่รหัสนี้ลงในตัวจับเวลาที่เริ่มทำงานทุกๆ 2.5 ชั่วโมงเพื่อรีเซ็ตตัวจับเวลาที่ไม่ได้ใช้งานหวังว่าจะได้ผล


1
น่าเศร้าที่การใส่รหัสลงในฟังก์ชันที่เริ่มทำงานบนตัวจับเวลาไม่สามารถแก้ไขปัญหาได้ ฉันเปิด iPad ทิ้งไว้เป็นเวลานานกว่า 24 ชั่วโมงและเครื่องไม่มืดและไม่มีการโต้ตอบใด ๆ ตามที่ลูกค้ารายหนึ่งของเราผู้ใช้รายหนึ่งใช้อุปกรณ์ก่อนหน้านี้ 15 นาทีจากนั้นอุปกรณ์ก็มืดลง
JMStudios.jrichardson

ฉันมีปัญหาเดียวกัน: ฉันมีตัวควบคุมมุมมองที่ฉันตั้งค่า idelTimerDisabled = true (แอปควรจะยังคงเปิดตลอดทั้งคืนนาฬิกาปลุก) และเกือบตลอดเวลาที่ใช้งานได้ แต่บางครั้งแอปก็อยู่เบื้องหลัง บางครั้งในช่วงกลางคืน ใครมีความคิดว่าจะย้ายแอปไปอยู่เบื้องหลังได้อย่างไร หรือรีเซ็ตค่าสถานะ?
Yariv Adam

ใช่คุณสามารถรีเซ็ตค่าสถานะได้และฉันก็ทำเช่นนั้นเช่นกัน ฉันมีสิ่งนี้ในฟังก์ชั่นเช่นกัน ปรากฎว่ามันเป็น "กระบวนการรูจ" บนเซิร์ฟเวอร์ MDM ของเราที่ส่ง Ping ไปยังอุปกรณ์ของเราเพื่อหรี่หน้าจอ น่ารำคาญมาก
JMStudios.jrichardson

0

เรามีปัญหาเดียวกัน กลายเป็นกระบวนการโกงบนเซิร์ฟเวอร์ MDM ของเราที่ถูกลบในบัญชีของเรา แต่บนเซิร์ฟเวอร์ยังคงส่งคำสั่งเพื่อหรี่อุปกรณ์ของเรา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.