【问题标题】:Change brightness of screen when receiving UILocalNotification接收 UILocalNotification 时更改屏幕亮度
【发布时间】:2013-10-31 03:51:37
【问题描述】:

今天我正在开发一个闹钟应用程序。我必须使用 UILocalNotification。闹钟将设置日期时间,然后当它到来时,一些通知会发出声音和消息。我希望此时屏幕(可能是主屏幕或锁定屏幕)的亮度增加到最大级别(这次闹钟应用程序在后台)。有可能吗?

【问题讨论】:

  • Apple 不允许您的应用在设备不在前台时修改设备的状态。

标签: ios iphone objective-c ipad


【解决方案1】:

我认为人们没有正确阅读您的问题。 当您的应用程序位于前面和中间时,您只能调整屏幕的亮度。您无法从您的应用更改任何其他屏幕上的屏幕亮度(不使用私有 API),例如主屏幕或锁定屏幕。

为了澄清,在 iOS5 及更高版本上,您可以更改亮度当您的应用显示时使用

[[UIScreen mainScreen] setBrightness:1.0];

但是,一旦您点击主页按钮,或您的应用关闭,屏幕将恢复为用户当前的亮度偏好。

【讨论】:

  • 是的,你真的明白我的问题,当我的应用程序在后台时,我想改变其他屏幕的亮度,这是我的要求之一。所以我应该拒绝这个要求。
  • 如果这回答了您的问题,请考虑将其标记为答案。
【解决方案2】:

这是改变亮度的代码:

[[UIScreen mainScreen] setBrightness:1.0];

但我认为它只适用于 iOS 5+。

【讨论】:

  • 当我的应用在后台时,这些代码行不适用。
  • Apple 不允许您的应用在设备不在前台时修改设备的状态。
【解决方案3】:

是的,您可以通过在视图上添加 blackView 并更改其 alpha 值来做到这一点,看起来您正在更改亮度。

     UIView *  polygonView = [[UIView alloc] initWithFrame: CGRectMake ( 0, 0, 500, 500)];
     polygonView.backgroundColor = [UIColor blackColor];
     polygonView.alpha = 0.2;

【讨论】:

    【解决方案4】:

    为了实现这个最初设置的屏幕亮度降低

    [[UIScreen mainScreen] setBrightness:0.5];
    

    然后当通知到来时,将其填满

    [[UIScreen mainScreen] setBrightness:1.0];
    

    【讨论】:

    • 当我的应用在后台时,这些代码行不适用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2012-09-11
    • 2012-05-28
    • 2023-04-04
    相关资源
    最近更新 更多