public abstract class ContactManager
extends java.lang.Object
联系人管理类,用来获取联系人姓名等数据,用于听写词典等。
联系人管理类仅作为辅助工具查询联系人姓名,用于听写时的词典上传到服务器以提高
听写时对联系人的匹配(见SpeechRecognizer.updateLexicon(java.lang.String, java.lang.String, com.iflytek.cloud.LexiconListener)
),
不会上传联系人的电话号码,请放心使用。您也可以自己实现对联系人名字获取,再通过
SpeechRecognizer.updateLexicon(java.lang.String, java.lang.String, com.iflytek.cloud.LexiconListener)
上传更新即可。
通过些功能获取系人时,应用需拥有以下权限:
android.Manifest.permission#READ_CONTACTS
结果格式如下:
张三
李四
王五
本类使用单例,调用者使用本类的对象,只需要通过createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
创建
一次对象后,便可一直使用该对象,直到通过调用destroy()
进行单例对象销毁。调
用者可通过getManager()
获取当前已经创建的单例。在销毁本类的单例对象后,
需要先通过createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
再次创建单例对象,方可再使用。
SpeechRecognizer.updateLexicon(java.lang.String, java.lang.String, com.iflytek.cloud.LexiconListener)
限定符和类型 | 类和说明 |
---|---|
static interface |
ContactManager.ContactListener
联系人查询回调
通过实现此接口,并在
createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener) 传入,通过
asyncQueryAllContactsName() 开始异步查询后,通过
此接口获取联系人查询状态和结果。 |
限定符和类型 | 方法和说明 |
---|---|
abstract void |
asyncQueryAllContactsName()
异步查询联系人名
异步查询,通过
ContactManager.ContactListener 返回查询结果,不会阻塞调用线程。 |
static ContactManager |
createManager(Context context,
ContactManager.ContactListener contactListener)
创建实例
使用此函数创建一个本类单例对象。
|
static void |
destroy()
销毁单例对象
通过本函数,停止查询联系人和监听联系人变化,并销毁由
createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
创建的单例对象。 |
static ContactManager |
getManager()
获取实例
获取已创建的实例,若返回null,则应该先通过
createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener) 创建实例。 |
abstract java.lang.String |
queryAllContactsName()
同步查询联系人名
同步查询,直接通过函数返回联系人名,会有一定的线程阻塞时间。
|
public static ContactManager getManager()
获取已创建的实例,若返回null,则应该先通过createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
创建实例。
createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
public static ContactManager createManager(Context context, ContactManager.ContactListener contactListener)
使用此函数创建一个本类单例对象。当成功创建一次单例对象后,可一直使用此对象,
直到调用destroy()
销毁已创建的单例对象为止。若在当前应用生命周期内调用
destroy()
前再次调用本函数,则直接返回已创建的单例对象。可通过
getManager()
获取已创建的单例对象。
context
- 应用上下文contactListener
- 查询联系人监听器,用以获取查询结果getManager()
,
destroy()
public static void destroy()
通过本函数,停止查询联系人和监听联系人变化,并销毁由createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
创建的单例对象。
销毁成功时,之前创建的单例对象已不能再使用,否则,
将会报错。此时需要再使用,应先通过createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
创建一个新的单例
对象。
public abstract java.lang.String queryAllContactsName()
同步查询,直接通过函数返回联系人名,会有一定的线程阻塞时间。
asyncQueryAllContactsName()
,
getManager()
public abstract void asyncQueryAllContactsName()
异步查询,通过ContactManager.ContactListener
返回查询结果,不会阻塞调用线程。
查询状态和结果监听器ContactManager.ContactListener
设置,参考
createManager(Context, com.iflytek.cloud.util.ContactManager.ContactListener)
。