I would like to know if the user has turned on the light over the control center before starting the app. I have a whole simple test app with the following code in the viewDidLoad
.
for(AVCaptureDevice *device in [AVCaptureDevice devices]){
if ([device isTorchAvailable] && [device hasTorch] ){
NSLog(@"%ld -- %ld -- %@ -- %.2f -- %@", device.torchMode, device.flashMode, device.isFlashActive ? @"yes" : @"no", device.torchLevel, device.isTorchActive ? @"yes" : @"no");
}
}
The light will turn on and the app will start. But it returns allways:
0 -- 0 -- no -- 0.00 -- no
It says:
AVCaptureDevice *device;
device.torchMode = AVCaptureTorchModeOff
device.flashMode = AVCaptureFlashModeOff
device.isFlashActive = NO
device.torchLevel = 0.0f
device.isTorchActive = NO
Problem:
I am told "not active" however the flashlight of the Device is ON. It was switched on in the control center. Why can't I grab this information?