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();
}