在应用中调用联系人

时间:2014-09-08 13:00:01

标签: android android-contacts

我正在开发我的应用程序,我想在我的应用程序中添加一个联系人列表...我试图了解某些但是是的...但我明白了...

我知道我已经在清单中添加了权限

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

我也知道我必须创造一个意图......我不知道是什么......

并请不要在这里重新发送这篇文章...我知道有一些有用的代码,但我不能聪明。有人可以通过一个简单的项目帮我一个按钮,当你点击按钮打开联系人菜单,你可以选择联系人吗?

How to call Android contacts list?

1 个答案:

答案 0 :(得分:0)

您可以从意向书中选择其中一个联系人:

 private void openPhonebook()
    {
        Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
        pickContactIntent.setType(CommonDataKinds.Phone.CONTENT_TYPE);
        startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
    }

您应该在onActivityResult()中处理响应意图:

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent intent)
    {
        super.onActivityResult(requestCode, resultCode, intent);

        if ( requestCode == PICK_CONTACT_REQUEST )
        {
            if ( resultCode == RESULT_OK )
            {
                Uri contactUri = intent.getData();
                String[] projection = { Phone.NUMBER, Phone.DISPLAY_NAME };

                Cursor cursor = getContentResolver().query(contactUri, projection, null, null, null);
                cursor.moveToFirst();

                int column = cursor.getColumnIndex(Phone.NUMBER);
                String phone = cursor.getString(column);

                column = cursor.getColumnIndex(Phone.DISPLAY_NAME);
                String name = cursor.getString(column);

                //set phone and to EditText
                etName.setText(name.trim());
                petPhone.setText(phone);

                cursor.close();
            }
        }
    }

也许可:

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