在iOS中访问环境光传感器

时间:2013-08-16 10:26:10

标签: ios sensor light ambient

我正在开展一个真正需要访问环境光传感器的项目。

我在Google和Stackoverflow中搜索了很多,但找不到任何有用的信息。甚至可以这样做吗?

我还尝试通过计算相机输入的亮度来计算环境光值,但结果并不是很精确,因为相机会对图像进行大量调整,从而扭曲结果。

2 个答案:

答案 0 :(得分:6)

要读取环境光传感器数据,您需要在IOKit框架中使用IOHID(Reference

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

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

答案 1 :(得分:-1)

我通过访问相机解决了这个问题

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection: (AVCaptureConnection *)connection
{
 CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL,
sampleBuffer, kCMAttachmentMode_ShouldPropagate);
NSDictionary *metadata = [[NSMutableDictionary alloc]
                          initWithDictionary:(__bridge NSDictionary*)metadataDict];
CFRelease(metadataDict);
NSDictionary *exifMetadata = [[metadata objectForKey:(NSString *)kCGImagePropertyExifDictionary] mutableCopy];
float brightnessValue = [[exifMetadata objectForKey:(NSString *)kCGImagePropertyExifBrightnessValue] floatValue];

//THIS IS INFORMATION THAT COMES FROM THE SENSOR
_Sensor = [[NSNumber numberWithFloat:brightnessValue] stringValue];
 NSLog(@" %@",_Sensor);

dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){


        if ([_Sensor isEqualToString:@"-5.575654"]) {

       // YOU CODE HER

        }
        else {

       // YOU CODE HER
    }

});

}