在我的应用程序中,我可以选择手电筒。然而,只有iPhone 4和iPhone 4S有手电筒。其他设备没有手电筒指示灯。如何找到当前的设备型号?请帮帮我。提前谢谢。
发布于 2011-12-08 00:06:46
您不应使用设备型号作为功能是否存在的指示器。取而代之的是,使用能够准确告知您该功能是否存在的API。
在本例中,您希望使用AVCaptureDevice的-hasTorch属性:
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
NSMutableArray *torchDevices = [[NSMutableArray alloc] init];
BOOL hasTorch = NO;
for (AVCaptureDevice *device in devices) {
if ([device hasTorch]) {
[torchDevices addObject:device];
}
}
hasTorch = ([torchDevices count] > 0);在AV Foundation Programming Guide和AVCaptureDevice Class Reference中提供了更多信息
发布于 2014-06-12 20:23:51
与上面的代码相比,您可以使用更少的代码和内存:
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
BOOL hasTorch = NO;
for (AVCaptureDevice *device in devices) {
if ([device hasTorch]) {
hasTorch = YES;
break;
}
}hasTorch现在将包含正确的值
发布于 2018-12-10 17:57:56
Swift 4
var deviceHasTorch: Bool {
return AVCaptureDevice.default(for: AVMediaType.video)?.hasTorch == true
}https://stackoverflow.com/questions/8418293
复制相似问题