阅读iPhone的Ambient Light传感器
我注意到在我的iPhone上,在阳光直射的几秒钟之后,屏幕会调整为变亮,变暗等。我想知道是否有办法与这个传感器进行交互?
我有一个在外面使用的应用程序。 当你进入直射光线时,在调整之前很难看到几个屏幕。 即使如此,它并不总是像我希望的那样明亮。 我想实现一个高对比度的户外观看皮肤,和一个低对比度的室内观看。
这是否可以读取光传感器数据,如果是这样,我该如何提取这些传感器值?
然而,我认为有一个光线传感器,因为相机知道何时使用闪光灯。
尝试使用GSEventSetBacklightLevel();
,这需要<GraphicsServices/GraphicsServices.h>
。 这是如何以编程方式调整亮度级别的。 还有一个get
选项,所以我认为可能有你以后的信息。
另一方面,这是一个不同的想法(也许是一个愚蠢的),使用设备的屏幕亮度,你可以得到一些外部条件的价值。
从0.12(黑)到0.99(轻)
下一行将获得这些值,试一试,在设备上放置一些灯,以获得不同的值。
NSLog(@"Screen Brightness: %f",[[UIScreen mainScreen] brightness]);
显然自动亮度function应该打开,以使其正常工作。
问候。
要读取环境光传感器数据,您需要在IOKit框架中使用IOHID。
http://iphonedevwiki.net/index.php/AppleISL29003
http://iphonedevwiki.net/index.php/IOKit.framework
但是,这需要私人标题,所以如果你使用它,苹果公司可能不会让你的应用程序进入应用程序商店。
我不断地问iOS论坛是否会在未来支持环境光传感器读数,但无济于事。
实际上,您可以使用相机来执行此操作,这与用户的屏幕亮度设置无关(即使自动亮度为OFF,也可以使用该function)。
你从video帧的元数据中读取亮度值,正如我在这个堆栈溢出答案中解释的那样。