如何导入特定联系人的电话号码? [英] How to import a Specific Contact's phone number?

查看:137
本文介绍了如何导入特定联系人的电话号码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试读取使用联系人选择器"选择的联系人的电话号码. 显示名称工作正常,但电话号码无效. 代码:

I'm trying to Read Phone number of a Contact Selected using Contact Picker. The Display Name works fine, But Phone number doesn't. Code:

//calling Contact Picker
public void CPick(View v){
        Intent intent=new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
        startActivityForResult(intent, PICK_CONTACT);
    }
    @Override
//Contact Picker here:
    protected void onActivityResult(int reqCode, int resultCode, Intent data){
        super.onActivityResult(reqCode,resultCode, data);

        if (reqCode==PICK_CONTACT){
            if(resultCode==AppCompatActivity.RESULT_OK){
                Uri contatctData=data.getData();
                Cursor c=getContentResolver().query(contatctData,null,null,null,null);
                if (c.moveToFirst()){
                    //String name=c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
//Above line works Fine

                    String name=c.getString(c.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));
//Above line gives error on runtime "invalid column"
                    Toast.makeText(this,"U have picked:"+name,Toast.LENGTH_SHORT).show();



                }
            }

        }
    }

由于我在任何地方都找不到相关的答案,因此我们将非常感谢任何帮助.

推荐答案

如果要允许用户选择电话号码,最好的选择是使用PHONE-PICKER而不是CONTACT-PICKER:

If you want to allow the user to pick a phone-number, the best option is to use a PHONE-PICKER not a CONTACT-PICKER:

Intent intent = new Intent(Intent.ACTION_PICK, CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(intent, PICK_PHONE);

...

protected void onActivityResult(int requestCode, int resultCode, Intent intent){
    if (requestCode == PICK_PHONE && resultCode == RESULT_OK){
        Uri phoneUri = intent.getData();
        Cursor cur = getContentResolver().query(phoneUri, new String[] { Phone.DISPLAY_NAME, Phone.NUMBER }, null, null, null);
        if (cur != null && cur.moveToFirst()){
            String name = cur.getString(0);
            String number = cur.getString(1);
            Log.d("PHONE-PICKER", "User picker: " + name + " - " + number);
            cur.close();
        }
    }
}

这篇关于如何导入特定联系人的电话号码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆