Làm cách nào để ngăn màn hình iPhone bị mờ hoặc tắt khi ứng dụng của tôi đang chạy?


114

Tôi đang làm việc trên một ứng dụng không yêu cầu người dùng nhập, nhưng tôi không muốn iPhone chuyển sang chế độ tiết kiệm pin.

Có thể tắt tính năng tiết kiệm năng lượng từ một ứng dụng không?


7
Điều gì xảy ra với số phiếu phản đối cho tất cả các câu hỏi gần đây? Đây có vẻ như là một câu hỏi hợp lệ đối với tôi.
Eric Schoonover

Câu trả lời:


172

Objective-C

[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

Nhanh

UIApplication.shared.isIdleTimerDisabled = true

2
Dòng mã này được sử dụng ở đâu? Nó nên nằm trong AppDelegate hoặc bộ điều khiển chế độ xem chính của Ứng dụng?

16
Điều đó phụ thuộc vào cách bạn dự định sử dụng nó. Bạn có thể chỉ có một dạng xem mà bạn không muốn hết thời gian chờ trong ứng dụng của mình. Trong trường hợp này, bạn sẽ sử dụng nó trong bộ điều khiển chế độ xem đó (khi chế độ xem xuất hiện). Để bật lại bộ hẹn giờ, sau đó bạn sẽ sử dụng [[UIApplication sharedApplication] setIdleTimerDisabled:NO];khi chế độ xem biến mất.
Liam George Betsworth

2
Ứng dụng có cần bật lại bộ hẹn giờ khi ứng dụng bị mất tiêu điểm hay việc này được hệ điều hành xử lý tự động?
Stan James

5
Stan - khi ứng dụng từ chức hoạt động, hệ điều hành sẽ tái kích hoạt chế độ nhàn rỗi, bạn không phải gọi[[UIApplication sharedApplication] setIdleTimerDisabled:NO];
Chris Stringer

IMHO nó không có gì khác biệt so với nơi bạn gọi này. Đây luôn là lần truy cập toàn bộ ứng dụng và mỗi chế độ xem được giữ trên màn hình, không bị mờ.
thập kỷ

20

Trong nhanh chóng bạn có thể sử dụng như

UIApplication.sharedApplication().idleTimerDisabled = true


2

Tôi đã đặt dòng mã này vào bộ điều khiển chế độ xem của mình nhưng chúng tôi vẫn nhận được khách hàng nói rằng màn hình sẽ mờ hoặc tắt cho đến khi ai đó chạm vào màn hình. Tôi đã thấy các bài đăng khác không chỉ bạn đặt theo chương trình

UIApplication.sharedApplication().idleTimerDisabled = true 

thành true nhưng trước tiên bạn phải đặt lại thành false

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

Đáng buồn thay, điều này vẫn không hoạt động và khách hàng vẫn nhận được màn hình mờ. Chúng tôi có hồ sơ Bộ cấu hình của Apple ngăn thiết bị chuyển sang chế độ ngủ, và một số thiết bị vẫn bị mờ màn hình và khách hàng cần nhấn nút màn hình chính để đánh thức màn hình. Bây giờ tôi đặt mã này vào bộ hẹn giờ kích hoạt 2,5 giờ một lần để đặt lại bộ hẹn giờ nhàn rỗi, hy vọng điều này sẽ hoạt động.


1
Đáng buồn thay, việc đặt mã vào một chức năng kích hoạt bộ hẹn giờ đã không khắc phục được sự cố. Tôi để iPad của mình bật trong hơn 24 giờ và nó không bị mờ và không có tương tác. Theo một khách hàng của chúng tôi, một người dùng đã sử dụng thiết bị trước 15 phút và sau đó thiết bị bị mờ.
JMStudios.jrichardson

Tôi đang gặp vấn đề tương tự: Tôi có bộ điều khiển chế độ xem trong đó tôi đặt idelTimerDisabled = true (ứng dụng được cho là vẫn mở suốt đêm, đồng hồ báo thức) và hầu hết thời gian nó hoạt động, nhưng đôi khi ứng dụng ở chế độ nền đôi khi trong đêm. Có ai biết điều gì có thể di chuyển ứng dụng sang chế độ nền không? hoặc đặt lại cờ?
Yariv Adam

Có, bạn có thể đặt lại cờ và tôi cũng đang làm điều đó. Tôi cũng có cái này trong một chức năng. Hóa ra đó là một "quá trình rắc rối" trên máy chủ MDM của chúng tôi gửi ping đến thiết bị của chúng tôi để làm mờ màn hình. rất phiền phức.
JMStudios.jrichardson

0

Chúng tôi đã gặp vấn đề tương tự. Hóa ra là một quá trình giả mạo trên máy chủ MDM của chúng tôi đã bị xóa trong tài khoản của chúng tôi nhưng trên máy chủ vẫn gửi lệnh để làm mờ thiết bị của chúng tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.