使 iPhone 屏幕变暗,但不要让它休眠
Posted
技术标签:
【中文标题】使 iPhone 屏幕变暗,但不要让它休眠【英文标题】:Dim iPhone Screen, but don't let it sleep 【发布时间】:2010-12-30 00:38:21 【问题描述】:更新
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 秒调暗屏幕。)有没有有效的方法来做到这一点?
【问题讨论】:
【参考方案1】:我很确定官方 SDK 中没有任何内容。
[(id)[UIApplication sharedApplication] setBacklightLevel:0.3f]; // or whatever value
有效,但当然是无证的。最近使用 UIGetScreenImage 的经验表明,使用有用但未记录的 API 的正确策略可能是使用它们,看看会发生什么。
如果失败了,有没有人测量过手机在显示黑色图像时是否会降低功耗,或者除非您可以关闭背光,否则它是否无济于事?
【讨论】:
酷,感谢您的洞察力。我会到处玩,看看能不能搞定。 请记住,如果您使用像这样的私有 API,Apple 可以/将会拒绝您的申请。 从 iOS 5 开始就有了。【参考方案2】:我使用一个“床头柜”类型的闹钟应用,如果你双击它的时钟屏幕,它会使屏幕变暗一些。
我相信它可能真正做的是在其整个内容上放置一个部分不透明的黑色 UIView。我认为背光并没有真正变暗,但是屏幕上的黑色使它看起来更暗。它有效。
【讨论】:
【参考方案3】:您能否设置proximityState 来欺骗iPhone 使其认为它靠近某人的耳朵?这适用于 iPhone,但不适用于 iPod touch。没有办法选择性地调整亮度......使屏幕变暗的应用程序通常通过在当前图像上放置部分透明的图像来实现。
【讨论】:
【参考方案4】:从iOS 5开始你可以设置UIScreen
的brightness
:
此属性仅在主屏幕上受支持。这个的价值 属性应该是介于 0.0 和 1.0 之间的数字。
应用所做的亮度更改仅在应用期间保持有效 活跃。系统恢复用户提供的亮度设置 当您的应用不在前台时的适当时间。所以如果你 改变这个属性的值,不需要记录 之前的值并在您的应用移至后台时恢复它。
【讨论】:
【参考方案5】:你可以使用这种方法http://oleb.net/blog/2014/02/alarm-clock-apps-ios/
只需在 info.plist 中添加一个参数。当您的屏幕变暗、设备被锁定时,您的应用仍会运行。
当您调试时,您的应用仍然在运行并且不会自动变暗,您只需按下锁定按钮即可进行测试。
当你在没有调试的情况下运行你的应用程序时,你可以看到这个功能,就像苹果的音乐应用程序一样,当设备关闭屏幕时音乐仍然播放。
【讨论】:
以上是关于使 iPhone 屏幕变暗,但不要让它休眠的主要内容,如果未能解决你的问题,请参考以下文章