国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS 來電阻止和身份識別

2019-11-09 15:14:20
字體:
來源:轉載
供稿:網友

年前各種項目驗收,總結,所以沒時間更新博客。年初,剛剛靜下來,這次文章,讓我們討論一下,iOS10新特性,來電識別和來電阻止

iOS 10中引入了許多新特性,其中 CallKit是一個非常重要的 API,The CallKit framework PRovides programmatic access to Voip functionality, as well as call blocking and identification. 這意味著現在可以通過 Call Directory Extension 來實現電話識別和黑名單功能了。本文簡單闡述了如果實現簡單的來電識別和黑名單功能。 Extension一直很輕量,單一的,這次的 Call Directory Extension 也不出例外,出奇的簡單。下面我們逐步完成今天的任務

Step1、 創建Call Directory Extension

在對應項目中的file->new->target,選擇application Extension中的Call Directory Extension,如圖: 創建Call Directory Extension 輸入Extension項目名稱后,創建成功后會彈出這樣的提示框:這里寫圖片描述點擊激活,直接進入到Extension項目。

Step2、 來電識別和來電阻止

1、項目創建成功后,在項目目錄文件中,生成了Info.plist、CallDirectoryHandler.h、CallDirectoryHandler.m三個文件。我們需要關注的是CallDirectoryHandler.m。 2、打開CallDirectoryHandler.m,里面自動生成了四個方法

- (void)beginRequestWithExtensionContext:(CXCallDirectoryExtensionContext *)context- (BOOL)addBlockingPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context - (BOOL)addIdentificationPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context- (void)requestFailedForExtensionContext:(CXCallDirectoryExtensionContext *)extensionContext withError:(NSError *)error

其中簡單的來電識別和來電阻止我們只要補全addIdentificationPhoneNumbersToContext和addBlockingPhoneNumbersToContext方法,在里面添加來電識別數據和黑名單數據就可以了。 3、來電識別

- (BOOL)addIdentificationPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context { - CXCallDirectoryPhoneNumber phoneNumbers[] = {+8613533533110,+8613726735411,+86158140043377}; NSArray<NSString *> *labels = @[ @"Dear",@"陳老濕",@"乾坤"]; NSUInteger count = (sizeof(phoneNumbers) / sizeof(CXCallDirectoryPhoneNumber)); for (NSUInteger i = 0; i < count; i += 1) { CXCallDirectoryPhoneNumber phoneNumber = phoneNumbers[i]; NSString *label = labels[i]; [context addIdentificationEntryWithNextSequentialPhoneNumber:phoneNumber label:label]; } return YES;}

注意點:1、電話號碼前要加區號:+86;2、電話號碼需要升序排列

4、來電阻止

- (BOOL)addBlockingPhoneNumbersToContext:(CXCallDirectoryExtensionContext *)context { CXCallDirectoryPhoneNumber phoneNumbers[] = {13726735412,18005555555 }; NSUInteger count = (sizeof(phoneNumbers) / sizeof(CXCallDirectoryPhoneNumber)); for (NSUInteger index = 0; index < count; index += 1) { CXCallDirectoryPhoneNumber phoneNumber = phoneNumbers[index]; [context addBlockingEntryWithNextSequentialPhoneNumber:phoneNumber]; } return YES;}

注意點:1、電話號碼需要升序排列

上面簡單介紹來電識別和來電阻止,現在我們安裝app到手機,必須是64位的設備。然后進入設備的設置 —> 電話 —> 來電阻止和身份識別,開啟我們的 App即可。

到此為止,我們簡單介紹如何簡單實現來電阻止和身份識別,利用Call Directory Extension很簡單實現該功能,重點是如何編輯這個黑名單列表。列表數據項可能很多,并且數據可能是實時更新添加的,那應該怎么做才更好呢?這個需要大家的思考~~

利用業余時間看了官方文檔,簡單介紹一下,如有理解錯誤,望大家指出


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松阳县| 合肥市| 安康市| 竹溪县| 武乡县| 剑川县| 石首市| 博罗县| 清水河县| 星座| 习水县| 玛纳斯县| 班戈县| 阿拉尔市| 来凤县| 美姑县| 曲阜市| 万源市| 米林县| 邮箱| 平潭县| 双江| 镇赉县| 桂东县| 修水县| 尖扎县| 越西县| 朝阳区| 余庆县| 伊吾县| 大关县| 临湘市| 临西县| 河北省| 桃江县| 石狮市| 东丽区| 无为县| 华亭县| 安西县| 四川省|