这是检测用户正在运行的设备的正确方法吗?
NSString *currentModel = [[UIDevice currentDevice] model];
if ([currentModel isEqualToString:@"iPhone"]) {
// The user is running on iPhone so allow Call, Camera, etc.
} else {
// The user is running on a different device (iPod / iPad / iPhone Simulator) disallow Call.
}
答案 0 :(得分:7)
这不是一般解决方案,但Apple在许多情况下提供API调用以检查是否支持特定功能。例子可能是:
+isSourceTypeAvailable:
和+availableMediaTypesForSourceType:
UIImagePickerController
允许您检查相机是否可用于当前设备。
+canSendMail
中 MFMailComposeViewController
检查设备是否配置为发送邮件。
-canOpenURL
类中的 UIApplication
来检查是否可以打开URL。例如,它可用于检查是否可以拨打电话:
if (![[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"tel://"]])
//We cannot make a call - hide call button here
如果此类API调用可用于您的目的,我会使用它们,而不是依赖于硬编码的字符串标识符。
答案 1 :(得分:1)
我不确定我是否想要概括那么多(也就是说,最终可能会有带摄像头的iPod,我不知道iPhone总是被称为“iPhone”),但是,是的,这是公认的方式。