Search code examples
androidcontacts

how to use the built-in contact manager in my app to view contacts


I mean that I don't want to create my own design and instead use the built-in design and view of contact manager that looks clean.


Solution

  • You can set an Event on Button click by setting an OnClickListener on the Button with the following code, and use Intent to call ContactPicker activity:

    button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                 Intent intent= new Intent(Intent.ACTION_PICK,  Contacts.CONTENT_URI);
    
        startActivityForResult(intent, PICK_CONTACT);
    
            }
        });
    

    and in onActivityResult() process the contact uri to load details of contact.

    @Override
    public void onActivityResult(int reqCode, int resultCode, Intent data) {
      super.onActivityResult(reqCode, resultCode, data);
    
    switch (reqCode) {
    case (PICK_CONTACT) :
      if (resultCode == Activity.RESULT_OK) {
        Uri contactData = data.getData();
        Cursor c =  managedQuery(contactData, null, null, null, null);
        if (c.moveToFirst()) {
          String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
          // TODO Fetch other Contact details as you want to use
    
        }
      }
      break;
    }
    }