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

Чтение датчика окружающего света для iPhone

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

У меня есть приложение, которое используется снаружи. Когда вы переходите в прямой свет, становится очень трудно увидеть экран на несколько мгновений, прежде чем он подстраивается. И даже тогда это не всегда так ярко, как хотелось бы. Я хотел бы реализовать высококонтрастный скин для наружного просмотра и низкий контраст для внутреннего просмотра.

Можно ли считывать данные датчика света, и если да, то как я могу извлечь эти значения датчиков?

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

4b9b3361

Ответ 1

Попробуйте использовать GSEventSetBacklightLevel();, для которого требуется <GraphicsServices/GraphicsServices.h>. Так можно программно регулировать уровни яркости. Существует также опция get, поэтому я думаю, что у вас может быть информация, которая вам нужна.

Ответ 2

С другой стороны, это другая идея (может быть, глупо), используя яркость экрана устройства, вы можете получить некоторое значение внешних условий.

От 0.12 (Темный) до 0.99 (Свет)

Следующая строка получит эти значения, попробует, включит и выключит свет на устройстве, чтобы получить разные значения.

NSLog(@"Screen Brightness: %f",[[UIScreen mainScreen] brightness]);

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

С уважением.

Ответ 3

Чтобы прочитать данные датчика внешнего освещения, вам необходимо использовать IOHID в структуре IOKit.

http://iphonedevwiki.net/index.php/AppleISL29003

http://iphonedevwiki.net/index.php/IOKit.framework

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

Я постоянно спрашиваю форумы iOS, будет ли в будущем поддержка показаний датчика освещенности, но безрезультатно.

Ответ 4

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

Вы читаете значение яркости из метаданных видеофрагментов, как я объясняю в этот ответ.