From 6c7a38817c46e35277599ebb4aa4c73b14a18cff Mon Sep 17 00:00:00 2001 From: Santos Cordon Date: Wed, 25 Jun 2014 15:30:08 -0700 Subject: [PATCH] Add a system API to get the default phone app. Change-Id: I59ca863d2af43a3b3c26d18b0279fc6e1e13b9b1 --- .../android/telecomm/TelecommManager.java | 31 +++++++++++++++++-- .../internal/telecomm/ITelecommService.aidl | 6 ++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/telecomm/java/android/telecomm/TelecommManager.java b/telecomm/java/android/telecomm/TelecommManager.java index a97e7e499f5fa..a0abc286144e6 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 @@ import com.android.internal.telecomm.ITelecommService; */ 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 @@ public class TelecommManager { 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 c758c6d36b9e7..2ae5768f2e25e 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 @@ interface ITelecommService { * Sets a given Subscription as the system default. */ void setSystemDefault(in Subscription subscription); + + /** + * Returns the component name of the default phone application. + */ + ComponentName getDefaultPhoneApp(); }