动态识别设备的IOS版本

时间:2011-09-07 04:31:00

标签: iphone ios ios4

  

可能重复:
  Check iPhone iOS Version

我正在构建一个拥有短信作曲家的应用程序(在3.0中不可用)。 如何动态查找底层设备的操作系统版本并使SMS选项可用,如果不能禁用该功能。

3 个答案:

答案 0 :(得分:5)

以下是一段代码,它将为您提供有关设备的所有信息

NSLog(@"uniqueIdentifier: %@", [[UIDevice currentDevice] uniqueIdentifier]);
    NSLog(@"name: %@", [[UIDevice currentDevice] name]);
    NSLog(@"systemName: %@", [[UIDevice currentDevice] systemName]);
    NSLog(@"systemVersion: %@", [[UIDevice currentDevice] systemVersion]);
    NSLog(@"model: %@", [[UIDevice currentDevice] model]);
    NSLog(@"localizedModel: %@", [[UIDevice currentDevice] localizedModel]);

你可以在这里找到版本号。

但是我建议你去检查手机是否支持邮件编辑,短信与否 像

类messageClass =(NSClassFromString(@“MFMessageComposeViewController”));

if (messageClass != nil) {          
    // Check whether the current device is configured for sending SMS messages
    if ([messageClass canSendText])
    {
        MFMessageComposeViewController *msgpicker = [[MFMessageComposeViewController alloc] init];
        msgpicker.messageComposeDelegate = self;
        msgpicker.recipients = [NSArray arrayWithObject:[self.productInfoArray valueForKey:@"Phone"]]; // your recipient number or self for testing
        msgpicker.body = @"test from OS4";
        NSLog(@"chat view array  %@",[self.productInfoArray valueForKey:@"Phone"]);
        [self presentModalViewController:msgpicker animated:YES];
        [msgpicker release];
        NSLog(@"SMS fired");


    }
    else {      NSLog(@"chat view array  %@",[self.productInfoArray valueForKey:@"Phone"]);
        NSLog(@"Device not configured to send SMS.") ;
        UIAlertView *alert= [[UIAlertView alloc]initWithTitle:@"Status" message:@"Device not configured to send SMS." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"cancel",nil];
        [alert show];
        [alert release];

    }
}

这有助于解决您的问题。 快乐的编码 干杯................

答案 1 :(得分:4)

UIDevice类有一个systemVersion属性,可用于获取操作系统版本。这将返回版本值,如3.1或4.2。猜猜你可以使用它来确定对短信功能的访问。

@property (nonatomic, readonly, retain) NSString *systemVersion

查看参考资料以获取更多信息> http://developer.apple.com/library/ios/#documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html

答案 2 :(得分:3)

我认为您可以使用NSClassFromString(@"MFMessageComposeViewController")查看该课程是否可用。

(警告:你无法以这种方式检查UIGestureRecognizer,因为Apple使用了同名的私有类。MFMessageComposeViewController也是如此。)