2009-12-25 26 views
25

Cập nhật

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html#//apple_ref/occ/instp/UIScreen/brightnessDim iPhone màn hình, nhưng đừng để nó ngủ

Đó là Doc Apple cho việc kiểm soát độ sáng màn hình. Dưới đây là câu hỏi ban đầu.


Tôi đã tìm thấy bằng cách sử dụng Google mà tôi có thể vô hiệu hóa iPhone khi đi ngủ trong một ứng dụng bằng cách sử dụng:

application.idleTimerDisabled = YES; 

nên mã trông như thế này:

- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after application launch 

    // This disables the autosleep I added this to TEST, 
    // delete later if you want:- 
    application.idleTimerDisabled = YES; 
    [window addSubview:switchViewController.view]; 
    [window makeKeyAndVisible]; 

Perfect , nó hoạt động tốt. Tuy nhiên, câu hỏi của tôi là, bằng cách nào đó tôi có thể vô hiệu hóa iPhone khi đi ngủ, trong khi vẫn cho phép màn hình mờ đi? Hoặc có lẽ làm mờ màn hình bản thân mình trong ứng dụng để tiết kiệm pin?

Tôi chắc chắn không muốn iPhone ngủ, nhưng tôi cũng muốn thân thiện với người dùng/pin thân thiện và làm mờ màn hình. (Bạn biết đấy, giống như cách bạn có thể đặt iPhone làm mờ màn hình X giây trước khi nó đi ngủ.) Có cách nào hiệu quả để làm điều này không?

Trả lời

11

Tôi chắc chắn không có gì trong SDK chính thức.

[(id)[UIApplication sharedApplication] setBacklightLevel:0.3f]; // or whatever value 

hoạt động, nhưng tất nhiên là không có giấy tờ. Trải nghiệm gần đây với UIGetScreenImage cho thấy rằng có lẽ chiến lược đúng với các API hữu ích nhưng không có giấy tờ là sử dụng chúng và xem điều gì xảy ra.

Nếu không, có ai đã từng đo nếu mức tiêu thụ điện năng của điện thoại giảm xuống nếu nó hiển thị hình ảnh đen hoặc không giúp trừ khi bạn có thể tắt đèn nền?

+0

Tuyệt vời, cảm ơn sự thấu hiểu của bạn. Tôi sẽ chơi xung quanh và xem tôi có thể làm được gì không. –

+4

Hãy nhớ rằng Apple có thể/sẽ từ chối ứng dụng của bạn nếu bạn sẽ sử dụng API riêng tư như thế này. – shw

+0

Vì iOS 5 có một. – Rivera

1

Bạn có thể đặt proximityState để lừa iPhone nghĩ rằng nó gần tai của ai đó không? Điều này sẽ làm việc với iPhone, nhưng không làm việc với iPod touch. Không có cách nào để chọn lọc điều chỉnh độ sáng ... các ứng dụng làm mờ màn hình thường làm như vậy bằng cách đặt một hình ảnh một phần trong suốt lên ảnh hiện tại.

+0

Bạn sẽ "đặt" như thế nào? 'proximityState' là chỉ đọc. – Rivera

2

Tôi sử dụng ứng dụng đồng hồ báo thức kiểu "đầu giường", nếu bạn nhấn đúp vào màn hình đồng hồ của màn hình, làm mờ màn hình xuống một số lượng.

Tôi tin rằng những gì nó có thể thực sự làm là đặt UIView màu đen một phần mờ đục trên toàn bộ nội dung của nó. Tôi nghĩ đèn nền không thực sự mờ đi, nhưng màu đen được đặt trên màn hình khiến nó có vẻ mờ đi. Nó hoạt động.

+0

Đây là những gì tôi sẽ làm là tốt. – csano

0

Bạn có thể sử dụng phương pháp này http://oleb.net/blog/2014/02/alarm-clock-apps-ios/

Chỉ cần thêm một tham số vào info.plist. Và ứng dụng của bạn vẫn chạy khi màn hình của bạn mờ, thiết bị của bạn bị khóa.

Khi bạn gỡ lỗi, ứng dụng của bạn vẫn chạy và không bao giờ bị mờ tự động, bạn chỉ cần nhấn nút khóa để kiểm tra.

Khi bạn chạy ứng dụng mà không gỡ lỗi, bạn có thể thấy tính năng này, chẳng hạn như ứng dụng Nhạc của Apple, nhạc vẫn phát khi thiết bị tắt màn hình.

0

Bắt đầu với iOS 5 bạn có thể đặt UIScreen 's brightness:

Khách sạn này chỉ được hỗ trợ trên màn hình chính. Giá trị của thuộc tính này phải là một số từ 0,0 đến 1,0, bao gồm.

Thay đổi độ sáng do ứng dụng thực hiện chỉ có hiệu lực trong khi ứng dụng hoạt động. Hệ thống khôi phục cài đặt độ sáng do người dùng cung cấp tại thời điểm thích hợp khi ứng dụng của bạn không ở nền trước. Vì vậy, nếu bạn thay đổi giá trị của thuộc tính này, bạn không cần phải ghi lại giá trị trước đó và khôi phục nó khi ứng dụng của bạn chuyển sang nền.

Các vấn đề liên quan