Android dialer application

ingsaurabh picture ingsaurabh · Feb 17, 2011 · Viewed 56.1k times · Source

I am figuring out a way to replace the default dialer application from my custom dialer application, but I am not getting how to achieve this.

Here is what I want

  • Create a custom dialer UI
  • My application is called whenever call button hardware or that one in Android is pressed
  • The application can also be called from the contact screen

I am referring to public static final String ACTION_DIAL.

Answer

zirael picture zirael · Feb 17, 2011
  1. Create a simple Android application (our dialer). To actually call someone, you just need that method:

    private void performDial(String numberString) {
        if (!numberString.equals("")) {
           Uri number = Uri.parse("tel:" + numberString);
           Intent dial = new Intent(Intent.ACTION_CALL, number);
           startActivity(dial);
        }
    }
    
  2. Give your application permission to call in AndroidManifest

    <uses-permission android:name="android.permission.CALL_PHONE" />
    
  3. Set in AndroidManifest intention that says to your phone to use your app when need a dialer

When someone press the call button:

    <intent-filter>
        <action android:name="android.intent.action.CALL_BUTTON" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

When someone fire an URI:

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <action android:name="android.intent.action.DIAL" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="tel" />
    </intent-filter>