我建立一個具有短信作曲家(這是不提供3.0)的應用程序。 如何動態查找底層設備的操作系統版本並使SMS選項可用,並且如果不禁用該功能。
回答
參考,我認爲你可以使用NSClassFromString(@"MFMessageComposeViewController")
,看是否類是可用的。
(警告:。你不能檢查UIGestureRecognizer
這種方式,因爲蘋果使用的專用類使用相同名稱能爲MFMessageComposeViewController
是真實的)
這是我上面評論的內容 - 切換功能 - 不是偶然的相關數據。 – bryanmac
謝謝brynmac&Barum –
UIDevice類具有可用於獲取操作系統版本的systemVersion屬性。這將返回版本值,如3.1或4.2。猜猜你可以使用它來確定對你的短信功能的訪問。
@property (nonatomic, readonly, retain) NSString *systemVersion
謝謝machan –
下面是一段代碼,這將給你所有的關於設備的信息
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];
}
}
這將有助於解決您的問題。 快樂編碼 Cheers ................
謝謝Sabby –
歡迎你親愛的......乾杯 – Sabby
- 1. 動態識別Jenkins版本
- 2. 識別iPad的設備iOS 4.2
- 3. iOS設備上的手勢識別
- 4. 如何識別Xamarin.iOS中的iOS版本
- 5. 如何唯一識別ios設備
- 6. 設備ID識別
- 7. 使用Nmap的移動設備識別
- 8. 支持舊的iOS版本和設備
- 9. Windows設備不再識別Android設備
- 10. 唯一識別移動設備
- 11. 移動設備上的本地口頭命令識別
- 12. iOS設備硬件版本號列表
- 13. iOS中僅有Retina設備版本
- 14. 識別iphone的版本
- 15. 識別libstdC++的版本
- 16. 安裝比設備最新版本更低的IOS版本
- 17. 語音識別USB設備
- 18. Tabris - 識別設備ID
- 19. 唯一識別設備
- 20. 識別高清設備
- 21. Android識別獨特設備
- 22. 最佳實踐的設備和iOS版本進行測試。需要同一設備上的多個iOS版本?
- 23. OpenCV的人臉識別:iOS版]
- 24. java版本無法識別
- 25. 識別.Net框架版本
- 26. 識別iOS SDK中的每個iphone設備
- 27. AS3:ios和Android設備上的語音識別
- 28. VMware上的macOS無法識別iOS設備
- 29. 識別編碼中的不同iOS設備?
- 30. 如何識別不同iOS設備上的同一用戶
通過將它與恰好在其中啓用的版本相關聯來確定服務可用性總是有點脆弱。未來,如果該服務可用時有任何差異,代碼將開始打破。我對SMS編寫器知之甚少,但是如果有一種編程方式來確定服務是否可用,那麼它將比它發生的版本檢查更好。 – bryanmac