当前位置: 首页 > 知识库问答 >
问题:

Android想打电话给联系人,而不是电话号码

朱华皓
2023-03-14

背景:

  • 我为android写了一个简单的小拨号器,可以拨打联系人的电话号码

问题:

我想打电话给联系人,而不是电话号码,这样Android:

  • 如果联系人有两个号码:将启动电话号码选择对话框,然后启动通话

当然,我可以从头开始实现一个弹出窗口,但我更愿意委托给一个标准操作,这样用户就可以使用与使用标准拨号器相同的用户体验。

共有1个答案

巩镜
2023-03-14

您可以使用类似的东西来提示用户选择联系人,然后拨打哪个电话号码(如果有多个)...

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);

@Override  
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if (resultCode == RESULT_OK) {  
    Uri contactData = data.getData();                   
    String theID = contactData.toString());

    //MAKE YOUR CALL .. do whatever... example:
    ContentResolver contentResolver = getContentResolver();
    Uri contactData = Uri.parse(theID);
    Cursor cur = contentResolver.query(contactData, null, null, null, null);
    String theNumber = cur.getString(cur.getColumnIndex("data4"));
    cur.close();

    Intent my_callIntent = new Intent(Intent.ACTION_CALL);
    my_callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
    my_callIntent.setData(Uri.parse("tel:" + theNumber));
    startActivity(my_callIntent);


    }                   

}  

它既不漂亮也不完美,可能需要一些修改,只是有点超出我的想象,但希望你能理解。

 类似资料:
  • 我想从Android的联系簿中获得电话号码。我尝试了许多方法,但我无法获得电话号码。我有联系人姓名和状态,但当我尝试获取电话号码时,它不起作用。我的代码是。

  • 问题内容: 我正在尝试根据给定的联系人电话号码检索联系人姓名。我做了一个可以在所有API版本中使用的函数,因为我无法使其在1.6版中运行,而且我也看不到问题所在,也许有人可以发现它? 请注意,我已经为字符串替换了API常量,因此没有过时的警告问题。 问题答案: 使用反射而不是比较sdk版本。

  • 问题内容: 我想在Android中分别阅读所有SIM卡联系人和电话联系人。我进行了搜索,发现很多人对此有疑问,但我找不到任何解决方案。我在这里喜欢一些答案,但这对我不起作用。当我测试它给我谷歌联系人: 但是当我测试时,它并没有给我SIM卡联系人: 然后我发现RawContacts是在此处由同步适配器创建的联系人。那可能是问题所在。有谁能告诉我 所有simcontacts 所有电话联络人 谢谢。 问

  • 本文向大家介绍Android获取手机联系人电话号码并返回结果,包括了Android获取手机联系人电话号码并返回结果的使用技巧和注意事项,需要的朋友参考一下 之前做了一个小练习需要用到获取手机里联系人的电话号码,通过查阅相关的资料,自己尝试写了一个小例子,可以成功获取。 首先需要在AndroidManifest.xml中获取权限 xml布局文件 MainActivity.java 以上就是本文的全部

  • 我遵循这个示例检索联系人列表,从android设备检索联系人。它提供所有联系人,包括电子邮件联系人和一些空联系人。 我尝试修改Conrects合同,如在投影和选择,以获得移动联系人,但没有工作。 String SELECTION=Conrects合同。联系人。DISPLAY_NAME" 有没有办法只获得有手机号码的联系人?

  • 拨打电话     拨打电话给 Skype 联系人。开始通话前,需先让支援PSP™版 Skype 的音频输入设备连接PSP™主机。 从联系人名单选择拨打对象 1. 进入 Skype 的选单画面后选择(联系人)。 2. 从联系人名单中选择电话的拨打对象。 可拨打电话给登入状态为(在线)等可通话状态的联系人。 开始呼叫后,会显示对方的名字或 Skype 账号。对方回复后即可开始通话。 提示 透过 Sky