搜狗语音:通讯录优先识别代码说明

Beijing, China

1、文件说明

图片.png

SGContact.h 编译了C++代码,所以引用的地方均需要更名为.mm

SGAddressBook 用于获取手机通讯录内容

SGContactData 包含百家姓本地文件,拼音算法依赖文件

2、使用说明

  • SGContact文件夹添加进工程中
  • 在显示未替换结果的地方导入文件
#import "SGContactWrapper.h"
  • 上屏之前调用替换方法
    resultStr = [[SGContactWrapper sharedInstance] convertWithOriginString:resultStr];
    

3、注意事项

  • 如果需要(@optional)监控是否成功获取通讯录权限以作出响应,实现SGContactWrapper的代理方法即可
[SGContactWrapper sharedInstance].delegate = self;

- (void)getContactPermissionSuccess:(BOOL)result{
if(result){
// success
}else{
// tell user to get permission
}
}
  • 目前通迅录的更新条件是联系人姓名信息出现变动,详细实现在SGContactWrapper.m中。

  • 目前有两种实现方式:

  • 获取本地通讯录以.txt文件存到Doument中,对应一种调用方法

/**
从本地存的contact.txt文件读取联系人信息

@param originStr 初始字段

@return 跟联系人姓名替换优先级后的结果
*/
- (NSString *)convertWithOriginStr:(NSString *)originStr

  • 将本地通讯录暂存到SGContactWrapper单例的属性(sgContactArray)里,对应另一种调用方法,推荐使用这一种方法 ``` /** 从单例的属性读取联系人信息

@param originString 初始字段

@return 跟联系人姓名替换优先级后的结果 */

  • (NSString *)convertWithOriginString:(NSString *)originString
- 涉及要隐私权限,需要在plist文件里添加key值

Privacy - Contacts Usage Description ```