Неяркий экран iPhone, но не позволяйте ему спать - PullRequest
25 голосов
/ 25 декабря 2009

Обновление

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 ]

11 голосов
/ 25 декабря 2009

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

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

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

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

2 голосов
/ 12 августа 2011

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

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

1 голос
/ 25 декабря 2009

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

0 голосов
/ 29 октября 2015

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

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

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

0 голосов
/ 17 марта 2014

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

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

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

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

...