Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何搜索联系人列表中的某个人并与其通话?_Android_Api_Call_Phone Call - Fatal编程技术网

Android 如何搜索联系人列表中的某个人并与其通话?

Android 如何搜索联系人列表中的某个人并与其通话?,android,api,call,phone-call,Android,Api,Call,Phone Call,我正在制作一个android应用程序,它可以接收语音命令并给那个人打电话。对于语音到文本的转换,我使用的是谷歌云API。我找到了google people API,但它只允许搜索和更新联系人等。我想获取详细信息并通过我的电话号码拨打电话。Twilio是我发现的另一个东西,但它只调用给定的号码,不搜索联系人。并生成一个新号码,然后从该号码呼叫。此外,这样用户将始终需要有一个活动的互联网连接,这将是一个限制 在这方面有人能帮我吗 嗯,在联系人中搜索姓名可能会返回多个联系人(例如,如果您有多个名为“d

我正在制作一个android应用程序,它可以接收语音命令并给那个人打电话。对于语音到文本的转换,我使用的是谷歌云API。我找到了google people API,但它只允许搜索和更新联系人等。我想获取详细信息并通过我的电话号码拨打电话。Twilio是我发现的另一个东西,但它只调用给定的号码,不搜索联系人。并生成一个新号码,然后从该号码呼叫。此外,这样用户将始终需要有一个活动的互联网连接,这将是一个限制


在这方面有人能帮我吗

嗯,在联系人中搜索姓名可能会返回多个联系人(例如,如果您有多个名为“david”的联系人) 而且,一个联系人可能有多个电话,所以你不知道该打哪一个

如果您忽略了这两个问题,只是随机选择第一个匹配的联系人,并使用第一个匹配的电话,请尝试以下操作:

String searchedName = "David";
String[] projection = { Phone.NUMBER };
String selection = Phone.DISPLAY_NAME + " LIKE %" + searchedName + "%";
Cursor cur = getContentResolver().query(Phone.CONTENT_URI, projection, selection, null, null);

if (cur.moveToFirst()) {
    String number = cur.getString(0);
    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:" + number));
    startActivity(intent); // requires permission "android.permission.CALL_PHONE" in AndroidManifest
} else {
    Log.w("CALL", "contact " + searchedName + " wasn't found");
}
cur.close();

应用程序崩溃了。我不知道问题出在哪里。如果我直接给cal一个数字,它会起作用,所以我知道问题不在那里