Add a system API to get the default phone app.

Change-Id: I59ca863d2af43a3b3c26d18b0279fc6e1e13b9b1
diff --git a/telecomm/java/android/telecomm/TelecommManager.java b/telecomm/java/android/telecomm/TelecommManager.java
index a97e7e4..a0abc28 100644
--- a/telecomm/java/android/telecomm/TelecommManager.java
+++ b/telecomm/java/android/telecomm/TelecommManager.java
@@ -16,7 +16,12 @@
 
 package android.telecomm;
 
+import android.annotation.SystemApi;
+import android.content.ComponentName;
 import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.util.Log;
 
 import com.android.internal.telecomm.ITelecommService;
 
@@ -25,11 +30,14 @@
  */
 public class TelecommManager {
     private static final String TAG = "TelecommManager";
+    private static final String TELECOMM_SERVICE_NAME = "telecomm";
 
     private final Context mContext;
     private final ITelecommService mService;
 
-    /** @hide */
+    /**
+     * @hide
+     */
     public TelecommManager(Context context, ITelecommService service) {
         Context appContext = context.getApplicationContext();
         if (appContext != null) {
@@ -41,8 +49,27 @@
         mService = service;
     }
 
-    /** {@hide} */
+    /**
+     * @hide
+     */
     public static TelecommManager from(Context context) {
         return (TelecommManager) context.getSystemService(Context.TELECOMM_SERVICE);
     }
+
+    /**
+     * @hide
+     */
+    @SystemApi
+    public ComponentName getDefaultPhoneApp() {
+        try {
+            return getTelecommService().getDefaultPhoneApp();
+        } catch (RemoteException e) {
+            Log.e(TAG, "RemoteException attempting to get the default phone app.", e);
+        }
+        return null;
+    }
+
+    private ITelecommService getTelecommService() {
+        return ITelecommService.Stub.asInterface(ServiceManager.getService(TELECOMM_SERVICE_NAME));
+    }
 }
diff --git a/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl b/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
index c758c6d..2ae5768 100644
--- a/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
+++ b/telecomm/java/com/android/internal/telecomm/ITelecommService.aidl
@@ -16,6 +16,7 @@
 
 package com.android.internal.telecomm;
 
+import android.content.ComponentName;
 import android.telecomm.Subscription;
 
 /**
@@ -55,4 +56,9 @@
      * Sets a given Subscription as the system default.
      */
     void setSystemDefault(in Subscription subscription);
+
+    /**
+     * Returns the component name of the default phone application.
+     */
+    ComponentName getDefaultPhoneApp();
 }