Tôi có một tính năng trong ứng dụng của mình (một ứng dụng nhịp dành cho nhạc sĩ) để làm mờ màn hình để tiết kiệm pin. Để đặt độ sáng, tôi đang sử dụng:Không thể khôi phục độ sáng khi thoát ứng dụng
[UIScreen mainScreen].brightness = 0.1;
Tôi đang lưu độ sáng ban đầu khi khởi động ứng dụng trong chế độ xemDidLoad (...) và lưu thành mặc định người dùng của tôi.
Khi thay đổi quan điểm trong ứng dụng, tôi lấy lại độ sáng ban đầu từ Defaults người dùng và khôi phục với một cuộc gọi:
[UIScreen mainScreen].brightness = originalBrightness;
này hoạt động tốt. Tôi có NSLog (...) tin nhắn hiển thị giá trị ban đầu, vv ... do đó, cơ chế hoạt động.
Sự cố tôi gặp phải là cách khôi phục độ sáng ban đầu khi thoát ứng dụng khi nhấn nút Trang chủ.
Tôi đã thêm mã tương tự như phương pháp đại biểu ứng dụng của tôi cho:
applicationWillResignActive(...)
applicationDidEnterBackground(...)
applicationWillTerminate(...)
Họ từng có một lời gọi phương thức để thiết lập độ sáng màn hình như trước đây trong giao diện với tương tự NSLog (...) là thể hiện lấy lại độ sáng ban đầu ... và tất cả đều chính xác. Tôi cũng đã gỡ lỗi trong và các cuộc gọi để thiết lập độ sáng đang được thực hiện ... nhưng các ứng dụng thoát, và màn hình thiết bị vẫn còn ở mức thấp hơn, mờ đi.
Cuối cùng, nếu bạn nhấp vào nút "khóa" ở trên cùng, sau đó nhấn nút Trang chủ để đánh thức nó ... độ sáng là chính xác.
Nghi ngờ của tôi là bất kỳ hành động hoặc sự kiện nào được kích hoạt với lệnh gọi của tôi để đặt độ sáng khi ứng dụng thoát không được thông qua, có thể do trạng thái không hợp lệ hoặc tương tự.
Ngoài ra, ứng dụng của tôi được thiết lập để không chạy ở chế độ nền, thiết lập trong info.plist như:
Application does not run in background YES
Bất kỳ trợ giúp sẽ được đánh giá cao.
Cảm ơn!
Đây là các API riêng tư? Tôi không thấy thuộc tính mainWindow hoặc mainWindows (typo?) Trong lớp UIScreen. Ý bạn là mainScreen? – picciano
Có, lỗi chính tả của tôi. Tôi là '[màn hình chính UIScreen] .brightness = val;' hoặc [[UIScreen mainScreen] setBrightness: val]; ' – Cal30
Tôi chắc chắn không có cách nào để đặt cài đặt này ở bên ngoài ứng dụng của bạn. Tài liệu của Apple không nói cụ thể điều này nhưng tôi đã thấy hai ứng dụng thay đổi độ sáng khác trong trường hợp này. Ai đó [ở đây] (http: // stackoverflow.com/a/7901339/76810) đồng ý. – SSteve