Phone Call example selecting Contacts from phone
In this tutorial we will learn how to call by selecting contacts from mobile with a simple example using Android Studio. In previous example we learn how to make a call just by giving hard coded number.
Example:
- Create a new project in Android Studio and name it as PhoneCall.
- Copy and paste the following code in activity_main.xml.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:padding="10dp" tools:context="hss_24.example.com.phonecall.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="40dp" android:gravity="center_horizontal" android:text="Android Lovers" android:textSize="20dp" android:textStyle="bold" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1"> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.8" android:gravity="center" android:text="Select Contact from list" android:textSize="18dp" android:textStyle="bold" /> <ImageButton android:id="@+id/btn_contacts" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.2" android:src="@android:drawable/stat_sys_phone_call" /> </LinearLayout> </LinearLayout>
- Copy and paste the following code in MainActivity.java.
import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.provider.ContactsContract; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageButton; public class MainActivity extends AppCompatActivity { ImageButton contacts; private static final int CONTACT_PICKER_RESULT = 1001; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); contacts = (ImageButton) findViewById(R.id.btn_contacts); contacts.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts")); pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers startActivityForResult(pickContactIntent, CONTACT_PICKER_RESULT); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // Check which request it is that we're responding to if (requestCode == CONTACT_PICKER_RESULT) { // Make sure the request was successful if (resultCode == RESULT_OK) { // Get the URI that points to the selected contact Uri contactUri = data.getData(); // We only need the NUMBER column, because there will be only one row in the result String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER}; Cursor cursor = getContentResolver() .query(contactUri, projection, null, null, null); cursor.moveToFirst(); // Retrieve the phone number from the NUMBER column int column = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); String number = cursor.getString(column); // set intent and call Intent callIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + number)); startActivity(callIntent); } } } }
- Give the following permission in the Manifest file to read the phone contacts.
File: AndroidMainfest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.nouman.phonecall"> <uses-permission android:name="android.permission.READ_CONTACTS" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
- Now run the app and enjoy the output.
Comments
Post a Comment