2009-07-27 58 views
7

Tôi cần ứng dụng của mình chạy mà không có iPhone chuyển sang chế độ ngủ. Nhưng tôi muốn tắt màn hình. Một cái gì đó tương tự được thực hiện trong ứng dụng Điện thoại, khi bạn nói chuyện trên điện thoại.Tắt màn hình

Tôi ngăn không cho iPhone chuyển sang chế độ ngủ theo cách sau: [[UIApplication sharedApplication] setIdleTimerDisabled: YES];

Nhưng làm cách nào để tắt màn hình? Và làm thế nào để tôi quay lại, khi người dùng chạm vào màn hình?

Cảm ơn.

Trả lời

5

Cập nhật: Phương pháp này không được chấp nhận. Xem bình luận của Timothée Boucher dưới đây.


Bạn có thể tắt màn hình thông qua cảm biến tiệm cận, nhưng không có cách nào khác để đặt màn hình ở chế độ ngủ.

-[UIApplication setProximitySensingEnabled:(BOOL)] 
+2

Đối với bất kỳ ai đọc điều này, tại thời điểm nhận xét của tôi, phương pháp này đã không được chấp nhận. Từ tài liệu của Apple: "Không được chấp nhận. Các thuộc tính' proximityMonitoringEnabled' và 'proximityState' của lớp' UIDevice' là các thay thế. " –

0

Tôi không thể xác nhận rằng đó là chức năng công cộng, nhưng tôi biết rằng có một cảm biến tiệm cận có thể cảm nhận được điện thoại có ở gần mặt bạn hay không. Hãy thử tìm hiểu và tìm hiểu xem cảm biến đó có công khai hay không và sau đó chức năng nào có thể đang tắt màn hình.

0

Không có cách nào có lập trình chính thức (công khai) để bật hoặc tắt màn hình hoặc thậm chí thay đổi độ sáng của màn hình. Một vài ứng dụng "giả" thay đổi độ sáng bằng cách áp đặt một chế độ xem màu đen trong suốt trên đầu chế độ xem của bạn và thay đổi độ mờ của nó để tạo ra sự thay đổi về độ sáng (đèn nền sẽ vẫn bật), vì vậy nó sẽ không bao giờ trông giống như màn hình tắt và bạn sẽ không tiết kiệm pin).

0

ya thair là cách bạn có thể sử dụng hàm không có giấy tờ GSEventSetBacklightFactor (1); điều này sẽ làm mờ màn hình. nếu bạn thay thế 1 bằng 0 màn hình của bạn sẽ bị tắt. sau đó bạn phải bấm nút home.for bằng cách sử dụng u này phải nhập khẩu một khuôn khổ khung hình dịch vụ khuôn khổ priate

+0

Không thể bật nó với "GSEventSetBacklightFactor (1);" trên thiết bị có khung công tác 3.1.2. Ngay cả nút home cũng không giúp được gì, nhưng chỉ khởi động lại thiết bị (Home + Sleep 10 giây).Nó hoạt động trên một mô phỏng. Thiết bị không bị chặn. – slatvick

+0

@slatvick - Bạn có nghĩa là 'không jailbroken', không phải' uncracked'. Tôi hy vọng nó không bị nứt. – Moshe

2

Vâng, bạn có thể tắt độ sáng hoàn toàn. Nó không khóa màn hình và thiết bị vẫn hiển thị nhưng không có đèn nền LCD làm cho nó gần như không thể nhìn thấy.

- (void) changeSystemBrightness: (NSString *) switchValue { 

if ([[UIScreen mainScreen] respondsToSelector:@selector(setBrightness:)]) { 
    if (switchValue) { 
     if ([switchValue isEqualToString:@"saveDefault"]) { 
      // 
      self.userBrightness = [UIScreen mainScreen].brightness; 
      //NSLog(@"User Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"restoreDefault"]) { 
      [UIScreen mainScreen].brightness = self.userBrightness; 
      //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
     } else if ([switchValue isEqualToString:@"min"]) { 
      //[UIScreen mainScreen].brightness = 0; 
     } else if ([switchValue isEqualToString:@"max"]) { 
      [UIScreen mainScreen].brightness = 1; 
     } else if ([switchValue isEqualToString:@"mid"]) { 
      [UIScreen mainScreen].brightness = 0.5; 
     } 
    } else { 
     [UIScreen mainScreen].brightness = self.userBrightness; 
     //NSLog(@"Restore Brightness: %1.1f", userBrightness); 
    } 
} 

}

Đầu tiên tiết kiệm mức độ sáng hệ thống của người dùng

[self changeSystemBrightness:@"saveDefault"]; 

Sau đó bạn chỉ có thể tắt màn hình:

[self changeSystemBrightness:@"min"]; 

Khôi phục độ sáng:

[self changeSystemBrightness:@"restoreDefault"]; 

iOS khôi phục độ sáng hệ thống mặc định khi màn hình tắt bình thường (khóa/mở khóa) để bạn phải phát hiện và xử lý điều đó.

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