使用ctcall需要匯入coretelephony.framework框架。
ctcall的基本使用
(1)初始化call
cfstringref number = cfstr("15555555555");(2)獲取聯絡歷史使用 _ctcallcopyallcalls 方法獲取所有的聯絡歷史,這個列表中的每個元素都是ctcall。ctcallref call = ctcalldial(number);// 建立並撥號
...ctcallhold(call);// 保持通話
...ctcallresume(call);// 恢復通話
...ctcalldisconnect(call);// 結束通話
注意:傳給
ctcalldial方法的引數,必須是規範化的**號碼。如:+1 (555) 555-5555 規範化後為 15555555555。
那麼如何獲取規範化的號碼呢:你可以使用 cpphonenumbercopynormalized方法來規範化乙個**號碼。
cfarrayref calls = _ctcallcopyallcalls();
nslog(@"calls: %@", calls);
cfrelease(calls);(3)補充cpphonenumber
上文提到過,在建立ctcall的時候,傳進去的引數必須是規範化的**號碼。那麼用於處理**號碼的東東就是cpphonenumber啦。現在來介紹下cpphonenumber的功能和使用。
cpphonenumber的功能使用最多的就是規範化**號碼和比較兩個**號碼。
<1>規範化**號碼:cpphonenumbercopynormalized 該方法返回乙個規範化的號碼copy
extern "c" char *cpphonenumbercopynormalized(const char* number);
char *pn = cpphonenumbercopynormalized("+1 (555) 555-5555");
printf("%s\n", pn); // 15555555555
free(pn);
<2>比較兩個號碼:cpphonenumbersequal 該方法會把傳進來的兩個號碼自動格式化後,再進行比較,相同為真,不同為假。國家**這個引數,在兩個**號碼裡面有不包含國家**的時候,需要額外提供乙個。extern "c" cfstringref cpphonenumbercopyhomecountrycode();
extern "c" bool cpphonenumbersequal(const char* number1, const char* number2, cfstringref country);
bool equal = cpphonenumbersequal("+49302270", "0302270", cpphonenumbercopyhomecountrycode()); // 如果連個號碼都是+49(德國)的,那麼這兩個號碼相同,返回yes。
opencv實用技巧總結!(後續會補充)
1.已經定義好了img為mat型,但是沒有初始化,在後面程式的任何乙個位置可以使用下面的 初始化img,比如img mat 1,2 其中 1是矩形區域的大小,2是陣列內資料型別。2.在opencv中畫素點的資料型別能找到對應類似char,int,float,double的,比如說是分別為cv 8uc...
ThinkPHP開發中的技巧 發現新的會繼續新增
1.可以定義公共的控制器或者model類來實現相同的功能 2.使用 this assign賦值的時候太多的話最好用陣列的方式 3.volist中獲取資料其實可以使用函式和物件的方法的。4.寫模版的時候如果用include包含的話,最好將html頭部編碼設定等都放在要包含的head.html中 5.如...
Vue中需要注意的小知識丶,後續會持續更新哦
注意觀察下面的兩段 區別在於乙個age加了v bind也就是冒號,乙個沒有加,那麼就會有區別了 因為不加v bind也就是冒號的話,那麼age後面的數字就相當於字串,然後整個 下來就相當於字串的拼接,那麼結果就是2010 20 aaa div script vue.config.production...