我正在制作一个可以接收语音命令并呼叫该人的android应用程序。对于语音到文本的转换,我使用的是Google Cloud API。我找到了google people API,但它仅允许搜索和更新联系人等。我想获取详细信息并从我的电话号码拨打电话。 Twilio是我发现的另一件事,但它仅呼叫给定号码,而不搜索联系人。并生成一个新号码,然后从该号码呼叫。同样,以这种方式,用户将总是需要具有活动的互联网连接,这将是一个限制。
有人可以在这方面帮助我吗?
答案 0 :(得分:0)
好吧,在您的联系人上搜索姓名可能会返回一个以上的联系人(例如,如果您有多个名为“ 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();