如何在android中使用各自的姓名拨打电话号码

如何在android中使用各自的姓名拨打电话号码,android,telephonymanager,Android,Telephonymanager,正在尝试用姓名拨打电话号码。可以通过拨打电话号码来拨打姓名 我已成功调用以下代码: Intent callIntentp2 = new Intent(Intent.ACTION_CALL); callIntentp2.setData(Uri.parse("tel: 55555555"); startActivity(callIntentp2); 它的输出看起来像 5555拨号 但我想用你的名字打电话,就像你储存在sim卡的联系人列表上一样。但我有手动输入的数据,而不是sim卡中的数据 约

正在尝试用姓名拨打电话号码。可以通过拨打电话号码来拨打姓名

我已成功调用以下代码:

 Intent callIntentp2 = new Intent(Intent.ACTION_CALL);
 callIntentp2.setData(Uri.parse("tel: 55555555");
 startActivity(callIntentp2);
它的输出看起来像

5555拨号

但我想用你的名字打电话,就像你储存在sim卡的联系人列表上一样。但我有手动输入的数据,而不是sim卡中的数据

约翰5555拨号


这是可能的。

动作调用是安卓的本意。当您调用它时,Android会执行后台进程,以显示默认的调用视图。有很多方法可以将一些广播接收器切碎,在本机呼叫屏幕上覆盖一个活动,但这是自找麻烦。如果没有根设备,这是一个困难的过程。这个问题实际上非常类似于:

我还没有读过这个链接,但是我很确定他们会说同样的话。如果不做一些奇怪的、不确定的工作,你是不可能做到这一点的

你可以(理论上)在打电话之前花点时间将带有附加姓名的号码添加到联系人列表中。当打电话时,它会显示姓名和电话号码(因为姓名被列为联系人,这是Android的默认操作)。通话结束后,您可以删除该联系人,以免其卡在不需要该联系人的联系人列表中

一些代码,例如:

ContentValues contactValues = new ContentValues();
        contactValues.put(Data.RAW_CONTACT_ID, 001);
        contactValues.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
        contactValues.put(Phone.NUMBER, "555-555-5555");
        contactValues.put(Phone.TYPE, Phone.TYPE_CUSTOM);
        contactValues.put(Phone.LABEL, "John");
        Uri dataUri = getContentResolver().insert(
             android.provider.ContactsContract.Data.CONTENT_URI, contactValues);
不要忘记将写联系人权限添加到应用程序清单中。再说一次,这只是一个选择(我唯一能想到的一个)