使用intent选择一个联系人详细信息

时间:2013-06-05 04:56:57

标签: android android-intent

我想从我的应用中获取联系人详细信息。所以我所做的就是使用Intent我将我的应用程序指向设备联系人。从那里我想选择一个联系人详细信息,包括电话号码,邮件ID,以及任何可用的详细信息。有可能吗?

我使用的意图是

Intent read1=new Intent();
read1.setAction(android.content.Intent.ACTION_VIEW);
read1.setData(ContactsContract.Contacts.CONTENT_URI);
startActivity(read1);

1 个答案:

答案 0 :(得分:2)

你可以这样使用。

在您的onClick

打开联系人列表。

Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
   startActivityForResult(intent, 0);

public void onActivityResult(int reqCode, int resultCode, Intent data) {
        super.onActivityResult(reqCode, resultCode, data);
        if (0 == reqCode) {
                if (resultCode == Activity.RESULT_OK) {
                    System.out.println("in on ActivityResult");
                    Uri contactData = data.getData();
                    Cursor c = managedQuery(contactData, null, null, null, null);
                    if (c.moveToFirst()) {
                        String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
                        String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

                        if (hasPhone.equalsIgnoreCase("1")) {
                            Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                            null,
                                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                                    + " = " + id, null, null);
                            phones.moveToFirst();
                            cNumber = phones.getString(phones.getColumnIndex("data1"));
                            name=phones.getString(phones.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
                            //here you can find out all the thing.
                            System.out.println("NAME:"+name);
                            etFirst.setText(cNumber);
                    }
                    }
                }
            }

    }

<强>权限

添加将联系人数据读取到应用程序清单的权限。

<uses-permission android:name="android.permission.READ_CONTACTS"/>

如果您发现任何问题,请告诉我。很高兴..

相关问题