Подтвердить что ты не робот

Можно ли программно настроить яркость экрана?

У меня есть приложение для iPhone для фотографических целей (вид лайтбокса). Это приложение требует как можно большего количества яркости. Есть ли способ программно изменить яркость экрана, а затем восстановить его через некоторое время?

4b9b3361

Ответ 1

Изменить: iOS 5 теперь включает в себя API яркости экрана.

[[UIScreen mainScreen] setBrightness:0.5];

Предыдущий ответ:

Нет, эта возможность не открывается через публичный APIS.

Изменить: обратите внимание, что в будущей возможной версии iOS может быть или не быть яркость экрана на панели многозадачности на одном конкретном iDevice.

Ответ 2

Возможно, но ваше приложение скорее всего будет отвергнуто из App Store, потому что оно использует частный API. Приложение-фонарик было отклонено, поскольку оно регулировало яркость экрана, поэтому я бы не рекомендовал его.

В iOS 4.2 iPad будет иметь яркость экрана в многозадачный-бар,

(как упоминалось @coob), чтобы вы могли указать своим пользователям, чтобы установить яркость там.


Что вы можете сделать, это создать черный оверлей-просмотр и установить его альфа в большей или меньшей степени в соответствии с тем, насколько ярким вы хотите, чтобы экран был. Это на самом деле не сделает экран менее ярким, но это даст пользователю иллюзию этого.

Ответ 3

Вот быстрый ответ на этот вопрос.

import UIKit
extension UIScreen
{
    static func setMainBrightness(brightness: CGFloat)
    {
        guard (0...1).contains(brightness) else
        {
            print("Attempt to set the screen brightness to an invalid value: \(brightness) should be between 0 and 1 inclusive.")
            return
        }
        self.main.brightness = brightness
    }
}

Вызвать его, используя:

UIScreen.setMainBrightness(0.5)

Или проигнорируйте мое расширение (которое я только что написал, чтобы проиллюстрировать ограничения) и просто позвоните:

UIScreen.main.brightness = 0.5