昏暗的iPhone屏幕,但不要让它睡觉

时间:2009-12-25 19:34:45

标签: iphone objective-c sleep

更新

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

这是用于控制屏幕亮度的Apple Doc。以下是原始问题。


我发现使用Google可以使用以下方法禁用iPhone在应用程序中睡眠:

application.idleTimerDisabled = YES;

因此代码如下所示:

- (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];

完美,效果很好。但是,我的问题是,我可以以某种方式禁止iPhone进入睡眠状态,同时仍然允许屏幕变暗吗?或者也许在应用程序中自己调暗屏幕以节省电池电量?

我绝对不希望iPhone睡觉,但我也希望用户友好/电池友好,并使屏幕变暗。 (你知道,比如你可以将iPhone设置为在睡眠前X秒调暗屏幕。)有没有一种有效的方法可以做到这一点?

5 个答案:

答案 0 :(得分:11)

我很确定官方SDK中没有任何内容。

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

有效,但当然没有证件。最近使用UIGetScreenImage的经验表明,使用有用但未记录的API的正确策略是使用它们并查看会发生什么。

如果没有这个,有没有人测量过手机的功耗是否显示黑色图像,或者除非你能关闭背光,否则它会没用?

答案 1 :(得分:2)

我使用“床头柜”型闹钟应用程序,如果你点击其时钟屏幕,会使屏幕变暗一些。

我相信它可能真正做的是在其整个内容上放置一个部分不透明的黑色UIView。我认为背光并没有真正变暗,但是屏幕上的黑色使它看起来更暗。它有效。

答案 2 :(得分:1)

你能设置proximityState来诱骗iPhone认为它靠近某人的耳朵吗?这适用于iPhone,但不适用于iPod touch。没有办法选择性地调整亮度...通过在当前屏幕上放置部分透明图像,调暗屏幕的应用程序通常会这样做。

答案 3 :(得分:0)

您可以使用此方法http://oleb.net/blog/2014/02/alarm-clock-apps-ios/

只需在info.plist中添加一个参数即可。当您的屏幕变暗,设备被锁定时,您的应用仍会运行。

当您调试时,您的应用仍会运行并且不会自动调暗,您只需按下锁定按钮即可进行测试。

当您在没有调试的情况下运行应用程序时,您可以看到此功能,例如Apple的音乐应用程序,当设备关闭屏幕时,音乐仍会播放。

答案 4 :(得分:0)

从iOS 5开始,您可以设置UIScreen' s brightness

  

此属性仅在主屏幕上受支持。这个的价值   property应该是介于0.0和1.0之间的数字。

     

应用程序所做的亮度更改仅在应用程序时保持有效   活跃。系统将恢复用户提供的亮度设置   适用于您的应用不在前台的时间。所以,如果你   更改此属性的值,您不需要记录   之前的值,并在您的应用移动到后台时恢复它。