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

Dim iPhone Screen, но не позволяйте ему спать

Update

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 секунд, пока он не заснет.) Есть ли эффективный способ сделать это?

4b9b3361

Ответ 1

Я почти уверен, что в официальном SDK ничего нет.

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

работает, но, конечно, не документирован. Недавний опыт работы с UIGetScreenImage указывает на то, что, возможно, правильная стратегия с полезными, но недокументированными API-интерфейсами - использовать их и видеть, что происходит.

В противном случае кто-либо когда-либо измерял бы, если потребляемая мощность телефона снижается, если отображается черное изображение, или это не помогает, если вы не можете отключить подсветку?

Ответ 2

Я использую приложение будильника типа "nightstand", которое, если вы дважды коснетесь его экрана часов, уменьшает экран на некоторую величину.

Я полагаю, что это, вероятно, действительно делает, - это частично непрозрачный черный UIView по всему содержанию. Я думаю, что подсветка не сильно тускнеет, но черный цвет, нанесенный поверх экрана, кажется более тусклым. Он работает.

Ответ 3

Можете ли вы установить proximityState, чтобы обмануть iPhone, подумав, что он близко к кому-то уха? Это будет работать с iPhone, но не с iPod touch. Невозможно выборочно регулировать яркость... приложения, которые сглаживают экран, обычно делают это, помещая частично прозрачное изображение поверх текущего.

Ответ 4

Вы можете использовать этот подход http://oleb.net/blog/2014/02/alarm-clock-apps-ios/

Просто добавьте параметр в info.plist. И ваше приложение все еще работает, когда ваш экран тускнеет, ваше устройство заблокировано.

При отладке приложение все еще запускается и никогда не тускнет автоматически, вы просто нажимаете кнопку блокировки для тестирования.

Когда вы запускаете приложение без отладки, вы можете видеть, что эта функция работает, как музыкальное приложение Apple, музыка все еще воспроизводится, когда устройство переключается на выключение экрана.

Ответ 5

Начиная с iOS 5 вы можете установить UIScreen brightness:

Это свойство поддерживается только на главном экране. Значение этого свойство должно быть числом от 0,0 до 1,0 включительно.

Изменения яркости, сделанные приложением, остаются в силе только в том случае, когда приложение активен. Система восстанавливает заданную пользователем настройку яркости в когда ваше приложение не находится на переднем плане. Так что если вы измените значение этого свойства, вам не нужно записывать предыдущее значение и восстановить его, когда ваше приложение перемещается в фоновый режим.