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

1. 文件说明

图片.png

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

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

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

2. 使用说明

  1. SGContact 文件夹添加进工程中
  2. 在显示未替换结果的地方导入文件
#import "SGContactWrapper.h"
  1. 上屏之前调用替换方法
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 中。

  • 目前有两种实现方式:

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

       /**
       从本地存的 contact.txt 文件读取联系人信息
       @param originStr 初始字段
       @return 跟联系人姓名替换优先级后的结果
       */
       - (NSString *)convertWithOriginStr:(NSString *)originStr
      
    2. 将本地通讯录暂存到 SGContactWrapper 单例的属性(sgContactArray)里,对应另一种调用方法,推荐使用这一种方法

       /**
       从单例的属性读取联系人信息
       @param originString 初始字段
       @return 跟联系人姓名替换优先级后的结果
       */
       - (NSString *)convertWithOriginString:(NSString *)originString
      
  • 涉及要隐私权限,需要在 plist 文件里添加 key 值

Privacy - Contacts Usage Description

2017

the-galileo-theme

作为一个移动端开发人员,经常要扒一扒其他项目的图片资源,可以用来直接使用或者做预开发时的占位图,也可以通过分析一个 ipa 中的图片资源来推导某一个功能的实现原理,简而言之,扒图也是开发人员应该具有的一个技能。考虑到年纪到了,忘东西越来越快,明年后年可能忘得更快,记一帖当做笔记。

Back to Top ↑