2011-12-19 30 views
5

Tôi đang cố gắng xây dựng một ứng dụng báo thức có thể kích hoạt báo thức trong khi ở chế độ khóa màn hình (ứng dụng ở phía trước, nhưng màn hình bị khóa). Báo động phải được kích hoạt bởi một NSTimer không phải bởi uilocalnotification.iOS 5 phòng ngừa sâu ngủ

Trong iOS 4, tôi đã sử dụng chức năng 'phát âm thanh im lặng sau mỗi 10 giây' để ngăn ứng dụng chuyển sang chế độ ngủ sâu và các sự kiện hẹn giờ hoạt động tốt. Tuy nhiên, trong iOS 5 điều này dường như không hoạt động.

Bất kỳ ý tưởng nào? Hoặc điều này sẽ làm việc và tôi đang làm điều gì sai?

+0

Peter, bạn đang sử dụng https://github.com/marcop/iPhoneInsomnia với khối lượng thiết lập để 0,1? –

+0

làm cơ sở - vâng. Có một số vấn đề với mã tuy nhiên, vì vậy tôi đã thay đổi một vài điều. –

+0

Bạn có nhớ những thay đổi bạn đã thực hiện không? –

Trả lời

4

Có vẻ như bạn thực sự có thể sử dụng 'chơi âm thanh im lặng' hack trong iOS 5, nhưng âm thanh phải được nghe có nghĩa là bạn không thể chơi nó ở âm lượng thiết lập để 0.0.

+0

Vì vậy, khối lượng 0,1 là chấp nhận được khi bạn gửi? – Gon

2

Đó có thể là cách giải quyết dơ bẩn, nhưng trong quá khứ tôi đã sử dụng cảm biến tiệm cận để tắt màn hình thay vì khóa điện thoại. Đơn giản chỉ cần đặt điện thoại lộn ngược và màn hình sẽ tự tắt.

[[UIDevice currentDevice] setProximityMonitoringEnabled:YES]; 

Điều này sẽ cho phép bạn giữ toàn quyền kiểm soát thiết bị, trong khi màn hình tắt.

+0

Đây là một ý tưởng thú vị. Không thực sự những gì tôi đang tìm kiếm, nhưng hữu ích không có ít hơn. –

+0

Tôi thích nó! Ứng dụng sẽ không bao giờ chuyển sang chế độ khóa màn hình bằng kỹ thuật này? – jimmystormig

+0

Không, không bao giờ. Đó là những gì một số ứng dụng khác sử dụng là tốt. Lưu ý rằng pin vẫn hết để cuối cùng điện thoại sẽ chuyển sang trạng thái "bị khóa". ;-) –

4

Bạn có thể sử dụng github.com/marcop/iPhoneInsomnia và đặt âm lượng lớn hơn 0, nhưng nó vẫn không hoạt động vì tệp âm thanh quá ngắn khiến hệ thống giết ứng dụng của bạn trước khi bộ hẹn giờ được kích hoạt và phát lại âm thanh. Tôi đã giải quyết điều này bằng cách thiết lập numberOfLoops của audioPlayer thành -1 (lặp lại vô hạn). Sau đó, nó sẽ làm việc.

Và bạn cũng nên thiết lập các khóa plist UIBackgroundMode tới một mảng của một chuỗi gọi là "âm thanh"