可能重复:
Check iPhone iOS Version
我正在构建一个拥有短信作曲家的应用程序(在3.0中不可用)。 如何动态查找底层设备的操作系统版本并使SMS选项可用,如果不能禁用该功能。
答案 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
也是如此。)