How to choose phone number with name by showing Phonebook contacts list and selecting one.
This tutorial is also known as Android Contact Picker tutorial because in this tutorial are going to get dynamically contact name & number from android device contact list with the use of startActivityForResult() . So here is the complete step by step tutorial for Get Pick Number From Contact List In Android Programmatically.
How to Get Pick Number From Contact List In Android Programmatically.
Add READ_CONTACTS permission into your AndroidManifest.xml file.
<uses-permission android:name="android.permission.READ_CONTACTS" />
Code for MainActivity.java file.
package com.android_examples.contactpicker_android_examplescom; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; import android.net.Uri; import android.provider.Contacts; import android.provider.ContactsContract; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { Button button ; TextView name,number; public static final int RequestPermissionCode = 1 ; Intent intent ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button)findViewById(R.id.button); name = (TextView)findViewById(R.id.textView2); number = (TextView)findViewById(R.id.textView); EnableRuntimePermission(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); startActivityForResult(intent, 7); } }); } public void EnableRuntimePermission(){ if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, Manifest.permission.READ_CONTACTS)) { Toast.makeText(MainActivity.this,"CONTACTS permission allows us to Access CONTACTS app", Toast.LENGTH_LONG).show(); } else { ActivityCompat.requestPermissions(MainActivity.this,new String[]{ Manifest.permission.READ_CONTACTS}, RequestPermissionCode); } } @Override public void onRequestPermissionsResult(int RC, String per[], int[] PResult) { switch (RC) { case RequestPermissionCode: if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(MainActivity.this,"Permission Granted, Now your application can access CONTACTS.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"Permission Canceled, Now your application cannot access CONTACTS.", Toast.LENGTH_LONG).show(); } break; } } @Override public void onActivityResult(int RequestCode, int ResultCode, Intent ResultIntent) { super.onActivityResult(RequestCode, ResultCode, ResultIntent); switch (RequestCode) { case (7): if (ResultCode == Activity.RESULT_OK) { Uri uri; Cursor cursor1, cursor2; String TempNameHolder, TempNumberHolder, TempContactID, IDresult = "" ; int IDresultHolder ; uri = ResultIntent.getData(); cursor1 = getContentResolver().query(uri, null, null, null, null); if (cursor1.moveToFirst()) { TempNameHolder = cursor1.getString(cursor1.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); TempContactID = cursor1.getString(cursor1.getColumnIndex(ContactsContract.Contacts._ID)); IDresult = cursor1.getString(cursor1.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); IDresultHolder = Integer.valueOf(IDresult) ; if (IDresultHolder == 1) { cursor2 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + TempContactID, null, null); while (cursor2.moveToNext()) { TempNumberHolder = cursor2.getString(cursor2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); name.setText(TempNameHolder); number.setText(TempNumberHolder); } } } } break; } } }
Code for activity_main.xml layout file.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.android_examples.contactpicker_android_examplescom.MainActivity" android:background="#FFF8E1"> <Button android:text="Click here for pick contact from contact list " android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/button" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="185dp" /> <TextView android:text="Selected Contact Number Display Here " android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button" android:layout_centerHorizontal="true" android:layout_marginBottom="12dp" android:id="@+id/textView" android:textSize="22dp" android:gravity="center" android:textColor="#000000"/> <TextView android:text="Selected Contact Name Display Here" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginBottom="12dp" android:id="@+id/textView2" android:textSize="22dp" android:gravity="center" android:textColor="#000000"/> </RelativeLayout>
Code for AndroidManifest.xml file.