2

这是检测用户正在运行哪个设备的正确方法吗?

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.
}
4

2 回答 2

7

这不是一个通用的解决方案,但 Apple 在许多情况下提供 API 调用来检查是否支持特定功能。示例可能是:

  • +isSourceTypeAvailable:并允许您检查相机是否可用于当前设备 +availableMediaTypesForSourceType:UIImagePickerController

  • +canSendMailMFMailComposeViewController检查设备是否配置为发送邮件 。

  • -canOpenURLUIApplication课堂上检查是否可以打开 URL。例如,它可用于检查是否可以拨打电话:

    if (![[UIApplication sharedApplication] canOpenURL:
                                     [NSURL URLWithString:@"tel://"]])
        //We cannot make a call - hide call button here
    

如果此类 API 调用可用于您的目的,我会使用它们而不是依赖硬编码的字符串标识符。

于 2010-03-15T13:53:04.143 回答
1

我不确定我是否想要概括那么多(即,最终可能会有一个带摄像头的 iPod,而且我不知道 iPhone 将始终被称为“iPhone”),但是是的,这就是接受的方式。

于 2010-03-15T13:52:49.527 回答