Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Android设备中使用ACTION_PICK意图仅显示电话号码的联系人大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的目标是只向用户显示带有电话号码的联系人,让用户选择我想在本地存储的少数联系人.

我在下面的方法中使用了各种选项来代替ContactsContract.Contacts.CONTENT_URI.但是我收到很多联系人(很多都是垃圾邮件,只有电子邮件ID).

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

        setContentView(R.layout.contact_@R_801_10288@ctor);

        ((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);
              }
           });
    }

如果我将ContactsContract.Contacts.CONTENT_URI作为上述方法的参数传递,并且在下面的处理程序方法的情况下,将查询方法String []作为投影参数(显示为注释),则该方法将失败并返回java.lang.IllegalArgumentexception.如果我在下面的方法中传递null,那么无论我选择什么联系人,我都找不到与电话号码或电子邮件相关的任何列.

@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);

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

通常当用户转到电话簿并且有可用的电话号码时,有没有办法只显示用户可见的联系人?

我尝试浏览stackoverflow和其他网站中的所有线程,但找不到解决此问题的任何解决方案,尽管许多人已发布此问题.我没有在Android平台上工作太多,我可能错过了一些细微的细节,我相信必须有一个简单的方法来实现这一点.

请建议.感谢您的帮助.

谢谢.

解决方法

请使用以下代码
Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
    intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
    startActivityForResult(intent,1);

大佬总结

以上是大佬教程为你收集整理的在Android设备中使用ACTION_PICK意图仅显示电话号码的联系人全部内容,希望文章能够帮你解决在Android设备中使用ACTION_PICK意图仅显示电话号码的联系人所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。