【问题标题】:How do i search and make phone call to a person in my contact list?如何在我的联系人列表中搜索和拨打电话?
【发布时间】:2018-12-10 14:49:19
【问题描述】:

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

有人可以在这方面帮助我吗?

【问题讨论】:

    标签: android api call phone-call


    【解决方案1】:

    好吧,在您的联系人中搜索姓名可能会返回不止一个联系人(例如,如果您有多个名为“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 一个数字,它可以工作,所以我知道问题不在那里
    猜你喜欢
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多