从联系人姓名而不是数字中解析URI号

时间:2014-12-15 12:56:43

标签: java android phone-call

正如你们可能建议的那样,我正在用语音命令创建一个SIRI。现在我想添加一个调用函数。例如,我有这段代码:

Intent call = new Intent(Intent.ACTION_DIAL);
call.setData(Uri.parse("tel:" + findViewByid(R.id.textView).getText());
startActivity(call);

因此用户必须输入电话号码。我确实想输入一个联系人姓名而不是一个号码,然后让应用程序自动扫描联系人簿并拨打该号码。我搜索了很多,但我无法找到我想要的东西。

所以我需要做的是Resolve Content,我不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

你为什么不试试这种方式:

从联系人列表中获取号码

Cursor cursor = mContentResolver.query(CommonDataKinds.Phone.CONTENT_URI, null, CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null);
while (cursor.moveToNext()) 
{
    phone_number.add(cursor.getString(cursor.getColumnIndex(CommonDataKinds.Phone.NUMBER)));
} 

用于呼叫

Intent call = new Intent(Intent.ACTION_DIAL);
call.setData(Uri.parse("tel:" + phone_number.get(0)));
startActivity(call);

输出

enter image description here