我想知道用户是否在启动应用程序之前打开了控制中心的灯光。我有一个完整的简单测试应用程序,在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");
}
}
灯将亮起,应用程序将启动。但它总是回归:
0 - 0 - 否 - 0.00 - 否
它说:
AVCaptureDevice *设备; device.torchMode = AVCaptureTorchModeOff device.flashMode = AVCaptureFlashModeOff device.isFlashActive = NO device.torchLevel = 0.0f device.isTorchActive = NO
问题:
我被告知“不活跃”,但设备的手电筒是开启的。它在控制中心开启。为什么我不能抓住这些信息?
参见演示项目 https://github.com/StefaniOSApps/TestFlash
这有助于检查当前的手电筒状态。