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

在Android设备中使用ACTION_PICK意图只显示带有电话号码的联系人

滕渝
2023-03-14

我的目标是只显示联系人与电话号码给用户,让用户选择少数联系人,我想存储在本地。

我使用了各种选项来代替以下方法中的contactscontract.contacts.content_uri。但我得到了很多很多的联系人(许多是垃圾,只有电子邮件ID)显示。

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.contact_selector);

        ((Button)findViewById(R.id.btnphonecontactlist)).setOnClickListener(new OnClickListener() {

         @Override
         public void onClick(View v) {
           // TODO Auto-generated method stub
           Intent contactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(contactIntent, 1);
              }
           });
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if(data != null)
        {
            Uri uri = data.getData();

            if(uri != null)
            {
                Cursor c = null;

                try
                {
                    c = getContentResolver().query(uri, null
                                                // new String[] { 
                            //ContactsContract.CommonDataKinds.Phone.NUMBER, 
                            //ContactsContract.CommonDataKinds.Phone.TYPE}, 
                            , null, null, null);

                    if(c != null && c.moveToFirst())
                    {
                        String number = c.getString(0);
                        String type = c.getString(1);
                    }               
                }
                finally
                {
                    if(c != null && !c.isClosed())
                        c.close();
                }
            }
        }
    }

共有1个答案

颜熙云
2023-03-14

请使用下面的代码

Intent intent = new Intent(Intent.ACTION_PICK,  ContactsContract.Contacts.CONTENT_URI);
    intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
    startActivityForResult(intent, 1);
 类似资料:
  • 我遵循这个示例检索联系人列表,从android设备检索联系人。它提供所有联系人,包括电子邮件联系人和一些空联系人。 我尝试修改Conrects合同,如在投影和选择,以获得移动联系人,但没有工作。 String SELECTION=Conrects合同。联系人。DISPLAY_NAME" 有没有办法只获得有手机号码的联系人?

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

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

  • 背景: 我为android写了一个简单的小拨号器,可以拨打联系人的电话号码 问题: 我想打电话给联系人,而不是电话号码,这样Android: 如果联系人有两个号码:将启动电话号码选择对话框,然后启动通话 当然,我可以从头开始实现一个弹出窗口,但我更愿意委托给一个标准操作,这样用户就可以使用与使用标准拨号器相同的用户体验。

  • 我想在我的联系人列表中显示与电话号码有关的国家旗帜(如下图所示的屏幕截图)。

  • 我正在运行以下代码,其编译,但我没有得到任何结果或土司显示,请帮助。。。 CustomBroadcastReceiver.java该类将接收动作电话状态更改,并将实例化为Customephonestatelistener CustomPhonestateListener。JAVA 这个类是主操作类 AndroidManifest。xml

  • 我正在开发一个具有登录活动的应用程序,当用户登录时,它会自动将联系人从手机保存到服务器。这是可行的,但我有一个问题,当我保存号码时,它们是以用户在手机中输入的格式保存的。例如,如果用户输入此号码:15555555,则将按此方式保存,但如果用户输入此号码时没有国家代码,则显示为:5555555,没有1,或任何其他国家代码,具体取决于国家。 我想要的是返回我所有的联系人,他们的国家代码,甚至那些用户已

  • null 在我的path变量中,我添加了*C:\androidsdkinstallation\android-sdk\platform-tools\;C:\androidsdkinstallation\android-sdk\tools\;C:\java32bitinstallation\;C:\java32bitinstallation\bin* 另外,在阅读了net中的某个地方之后,我添加了J