检测设备型号(iPhone/iPod Touch)的正确方法?
Posted
技术标签:
【中文标题】检测设备型号(iPhone/iPod Touch)的正确方法?【英文标题】:Proper method to detect device model (iPhone/iPod Touch)? 【发布时间】:2010-03-15 13:46:03 【问题描述】:这是检测用户正在运行的设备的正确方法吗?
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.
【问题讨论】:
这似乎是这个问题的重复:***.com/questions/688001/… 【参考方案1】:这不是一个通用的解决方案,但 Apple 在许多情况下提供 API 调用来检查是否支持特定功能。示例可能是:
+isSourceTypeAvailable:
和 +availableMediaTypesForSourceType:
中的 UIImagePickerController
允许您检查相机是否可用于当前设备。
+canSendMail
in MFMailComposeViewController
检查设备是否配置为发送邮件。
-canOpenURL
在UIApplication
类中检查是否可以打开 URL。例如,它可以用来检查是否可以拨打电话:
if (![[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"tel://"]])
//We cannot make a call - hide call button here
如果此类 API 调用可用于您的目的,我会使用它们而不是依赖硬编码的字符串标识符。
【讨论】:
那么这对电话有什么作用呢?我使用 tel:// 拨打一个号码,并带有一个显示该号码可以被呼叫的图标。如果用户不能直接拨打电话,我不希望显示此图标。 iPad 和 iPod Touch 就是这种情况。 非常感谢弗拉基米尔!我增加了答案编号并将其标记为答案。【参考方案2】:我不确定我是否想概括这么多(即,最终可能会有带摄像头的 iPod,而且我不知道 iPhone 将始终被称为“iPhone”),但是是的,这是公认的方式。
【讨论】:
听起来更像是评论而不是答案,不是吗? 他们询问这是否是确定用户正在运行什么设备的方法。 “是”如何成为评论?以上是关于检测设备型号(iPhone/iPod Touch)的正确方法?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript iPhone / iPod Touch检测
如何通过代码查找iPhone / iPod设备型号(3G,3GS,4,4S)? [重复]
如何在其他人的 iphone/ipod touch 设备上安装我的应用程序
JavaScript 如何从未破解的iPhone / iPod Touch连接到SOCKS代理
iPhone / iPod Touch 图标图像错误(MininumOSVersion 低于 3.2),而项目适用于 iPad?