Dim iPhone Screen, but don't let it sleep

…衆ロ難τιáo~ 提交于 2019-12-20 08:57:52

问题


Update

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html#//apple_ref/occ/instp/UIScreen/brightness

That's the Apple Doc for controlling screen brightness. Below is the original question.


I have found by using Google that I can disable the iPhone going to sleep in an application by using:

application.idleTimerDisabled = YES;

so the code looks like this:

- (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, it works well. However, my question is, can I somehow disable the iPhone from going to sleep, while still allowing the screen to dim? Or perhaps dim the screen myself in the app as to save battery power?

I definitely don't want the iPhone sleeping, but I'd also like to be user friendly/battery friendly and dim the screen. (You know, like how you can set the iPhone to dim the screen X seconds before it goes to sleep.) Is there an effective way to do this?


回答1:


I'm pretty sure there's nothing in the official SDK.

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

works, but is of course undocumented. The recent experience with UIGetScreenImage indicates that perhaps the right strategy with useful but undocumented APIs is to use them and see what happens.

Failing that, has anybody ever measured if the phone's power consumption goes down if it's showing a black image, or does it not help unless you can turn down the backlight?




回答2:


I use a "nightstand" type alarm clock app that, if you double-tap its clock screen, dims the screen by some amount.

I believe what it's probably really doing is laying a partially-opaque black UIView over its entire content. I think the backlight isn't really dimmed, but the black color laid over the screen makes it seem dimmer. It works.




回答3:


Can you set proximityState to trick the iPhone into thinking that it is close to someone's ear? This would work with the iPhone, but not the iPod touch. There is no way to selectively turn adjust the brightness ... apps that dim the screen typically do so by putting a partly transparent image over the current one.




回答4:


Starting with iOS 5 you can set UIScreen's brightness:

This property is only supported on the main screen. The value of this property should be a number between 0.0 and 1.0, inclusive.

Brightness changes made by an app remain in effect only while the app is active. The system restores the user-supplied brightness setting at appropriate times when your app is not in the foreground. So if you change the value of this property, you do not need to record the previous value and restore it when your app moves to the background.




回答5:


You can use this approach http://oleb.net/blog/2014/02/alarm-clock-apps-ios/

Just add a parameter into info.plist. And your app still run when your screen dim, your device locked.

When you debug, your app still run and never dim automatically, you just press lock button to test.

When you run your app without debug, you can see this feature do, like Music app of Apple, the music still play when device go to turn off screen.



来源:https://stackoverflow.com/questions/1961783/dim-iphone-screen-but-dont-let-it-sleep

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!