Acceso al sensor de luz ambiental en iOS

Estoy trabajando en un proyecto en el que realmente es necesario acceder al sensor de luz ambiente.

Busqué mucho en Google y Stackoverflow, pero no pude encontrar ninguna información útil. ¿Es posible hacerlo?

También traté de calcular el valor de la luz ambiental calculando el brillo de la input de la camera, pero los resultados no son realmente precisos, ya que la camera hace muchos cambios en las imágenes, lo que distorsiona los resultados.

Para leer los datos del sensor de luz ambiente, debe usar IOHID en el marco de IOKit ( reference )

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

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

Resuelvo este problema con el acceso a la camera

 - (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 } }); } 
Intereting Posts