在实际开发过程中,在使用某项功能前我们需要对设备的支持能力做一些检测。例如,我们要使用相机之前需要确定设备有相机(例如iPod就是没有相机的)。下面针对这些能力的检测分别给出小例子:
检测相机
代码如下:
// 检查设备是否支持使用指定的设备(这里参数用的是相机)采集多媒体资源
BOOL isSTAvailable = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
NSLog(@"isSourceTypeAvailable %@", isSTAvailable? @"YES":@"NO");
// 检查设备支持的采集资源类型列表
NSArray *available = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
NSLog(@"availableMediaTypesForSourceType %@", available);
// 查看设备是否支持闪光灯
BOOL isFLAvailable = [UIImagePickerController isFlashAvailableForCameraDevice:UIImagePickerControllerCameraDeviceRear];
NSLog(@"isFlashAvailableForCameraDevice %@", isFLAvailable? @"YES":@"NO");
// 设备支持的最大录制时间(属性)
NSTimeInterval interval = [[[UIImagePickerController alloc] init] videoMaximumDuration];
NSString *timestring = [NSString stringWithFormat:@"%02li:%02li:%02li",
lround(floor(interval / 3600.)) % 100,
lround(floor(interval / 60.)) % 60,
lround(floor(interval)) % 60];
NSLog(@"videoMaximumDuration %@", timestring);
多任务处理
代码如下:
// 得到当前设备对象
UIDevice *device = [UIDevice currentDevice];
BOOL isSupportMultitask = [device respondsToSelector:@selector(isMultitaskingSupported)];
NSLog(@"isSupportMultitask %@", isSupportMultitask? @"YES":@"NO");
简便手段
实际开发中还有一种简便手段,直接在工程的属性中制定需要的设备支持能力:
这里可以配置的内容有: