我已成功在Android中实施搜索,以通过语音识别查找联系人姓名。现在我想通过语音识别找到号码。
我已经尝试了这个How to call Android contacts list?,但它不能用于我的SGS2。我认为来源是旧版本。这就是为什么它不起作用。
如何在Android联系人中找到由语音识别产生的姓名号码?
答案 0 :(得分:2)
private void getContactData() {
Cursor phoneCursor = null;
contactList = new HashMap<String,String>();
try{
// 주소록이 저장된 URI
Uri uContactsUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
// 주소록의 이름과 전화번호의 열 이름
String strProjection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME;
// 주소록을 얻기 위한 쿼리문을 날리고 커서를 리턴
phoneCursor = getContentResolver().query(uContactsUri, null, null, null, strProjection);
phoneCursor.moveToFirst();
String name = "";
String phoneNumber = "";
// 주소록의 이름
int nameColumn = phoneCursor.getColumnIndex(Phone.DISPLAY_NAME);
// 주소록의 전화번호
int phoneColumn = phoneCursor.getColumnIndex(Phone.NUMBER);
while(!phoneCursor.isAfterLast()){
name = phoneCursor.getString(nameColumn);
phoneNumber = phoneCursor.getString(phoneColumn);
// HashMap에 data 넣음
contactList.put(name, phoneNumber);
phoneCursor.moveToNext();
}
}
catch(Exception e){
Log.e("[SmsMain] getContactData", e.toString());
}
finally{
if(phoneCursor != null){
phoneCursor.close();
phoneCursor = null;
}
}
}
这是获取联系人数据库的来源。
我通过搜索解决了。