關於iPhone上電話與短信相關功能,做一個簡單總結:
使用公開SDK能實現的功能: (1)獲取和操作通訊錄。使用函數 ABAddressBookRequestAccessWithCompletion 、ABAddressBookCopyArrayOfAllPeople等,需要用戶點擊按鈕確認。 (2)獲取電話狀態 使用類CTCallCenter可以得到通話狀態(呼入、呼出、掛斷,運營商等,無法得到呼入呼出電話號碼),前後台時事件略有不同 (3)獲取運營商及網絡信息 使用類CTCarrier CTTelephonyNetworkInfo (4)撥打電話 [[UIApplication sharedApplication] openURL:@"tel://88888] (5)調用發送短信的界面 方法一 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]]; 只能設定發送號碼 方法二 使用 MFMessageComposeViewController 可以設定號碼和內容,但不能自定義界面, 必須由用戶點擊確認發送,不能後台發送 使用 需要使用非公開SDK或者越獄才能實現的功能 之所以將非公開SDK和越獄區分開,是因為概念有些差異。有些私有API即使不越獄,在有證書的情況下,也是可以在真機上運行的。而有些功能,必須在越獄的情況下,才能有權限執行,沒有越獄的情況下,有證書也無法運行。 (1)獲取電話號碼 CTSettingCopyMyPhoneNumber 私有API,不需要越獄 (2) 獲取通話記錄和短信內容 通話記錄 讀取數據庫/private/var/root/Library/CallHistory/call_history.db 需要越獄 (3) 獲取收到短信事件 CTTelephonyCenterAddObserver 監聽事件 私有API,不需要越獄 還有其他N多功能,越獄後都能實現