OSDN Git Service

Add getSelfManagedPhoneAccounts() TelecomManager API.
authorTyler Gunn <tgunn@google.com>
Fri, 7 Apr 2017 21:57:37 +0000 (14:57 -0700)
committerTyler Gunn <tgunn@google.com>
Mon, 10 Apr 2017 20:29:21 +0000 (13:29 -0700)
This is consistent with the existing getCallCapablePhoneAccounts API
which is used to get the phone accounts capable of placing phone calls.

Test: CTS
Bug: 34159263
Merged-In: I1396c63a6882947cd66721528e53b6964a9091e0
Change-Id: I1396c63a6882947cd66721528e53b6964a9091e0

api/current.txt
api/system-current.txt
api/test-current.txt
telecomm/java/android/telecom/TelecomManager.java
telecomm/java/com/android/internal/telecom/ITelecomService.aidl

index 1a6ae5c..dc2daec 100644 (file)
@@ -37459,6 +37459,7 @@ package android.telecom {
     method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
     method public java.lang.String getLine1Number(android.telecom.PhoneAccountHandle);
     method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
+    method public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
     method public android.telecom.PhoneAccountHandle getSimCallManager();
     method public java.lang.String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
     method public boolean handleMmi(java.lang.String);
index 12a0b0e..9271c72 100644 (file)
@@ -40625,6 +40625,7 @@ package android.telecom {
     method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
     method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsForPackage();
     method public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(java.lang.String);
+    method public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
     method public android.telecom.PhoneAccountHandle getSimCallManager();
     method public java.lang.String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
     method public boolean handleMmi(java.lang.String);
index a0362b4..70e097f 100644 (file)
@@ -37558,6 +37558,7 @@ package android.telecom {
     method public android.telecom.PhoneAccountHandle getDefaultOutgoingPhoneAccount(java.lang.String);
     method public java.lang.String getLine1Number(android.telecom.PhoneAccountHandle);
     method public android.telecom.PhoneAccount getPhoneAccount(android.telecom.PhoneAccountHandle);
+    method public java.util.List<android.telecom.PhoneAccountHandle> getSelfManagedPhoneAccounts();
     method public android.telecom.PhoneAccountHandle getSimCallManager();
     method public java.lang.String getVoiceMailNumber(android.telecom.PhoneAccountHandle);
     method public boolean handleMmi(java.lang.String);
index 5093a61..94c3dfe 100644 (file)
@@ -755,6 +755,32 @@ public class TelecomManager {
     }
 
     /**
+     * Returns a list of {@link PhoneAccountHandle}s for self-managed {@link ConnectionService}s.
+     * <p>
+     * Self-Managed {@link ConnectionService}s have a {@link PhoneAccount} with
+     * {@link PhoneAccount#CAPABILITY_SELF_MANAGED}.
+     * <p>
+     * Requires permission {@link android.Manifest.permission#READ_PHONE_STATE}, or that the caller
+     * is the default dialer app.
+     * <p>
+     * A {@link SecurityException} will be thrown if a called is not the default dialer, or lacks
+     * the {@link android.Manifest.permission#READ_PHONE_STATE} permission.
+     *
+     * @return A list of {@code PhoneAccountHandle} objects.
+     */
+    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
+    public List<PhoneAccountHandle> getSelfManagedPhoneAccounts() {
+        try {
+            if (isServiceConnected()) {
+                return getTelecomService().getSelfManagedPhoneAccounts(mContext.getOpPackageName());
+            }
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error calling ITelecomService#getSelfManagedPhoneAccounts()", e);
+        }
+        return new ArrayList<>();
+    }
+
+    /**
      * Returns a list of {@link PhoneAccountHandle}s including those which have not been enabled
      * by the user.
      *
index c044742..86f7d7d 100644 (file)
@@ -59,6 +59,11 @@ interface ITelecomService {
             boolean includeDisabledAccounts, String callingPackage);
 
     /**
+     * @see TelecomServiceImpl#getSelfManagedPhoneAccounts
+     */
+    List<PhoneAccountHandle> getSelfManagedPhoneAccounts(String callingPackage);
+
+    /**
      * @see TelecomManager#getPhoneAccountsSupportingScheme
      */
     List<PhoneAccountHandle> getPhoneAccountsSupportingScheme(in String uriScheme,