diff options
| author | 2017-03-23 01:17:28 +0000 | |
|---|---|---|
| committer | 2017-03-23 01:17:33 +0000 | |
| commit | 19091a0fbd58bfe15bd4408183a75583716d278c (patch) | |
| tree | e0480f36818bf11358c8f135b28d2128ef19afa2 | |
| parent | 615ee4768b1a3bd8c77205cc1f2b451eb9277745 (diff) | |
| parent | 388eab414779124f9b07837a2a9d5e4c6c1c068c (diff) | |
Merge "sendDialerCode API review"
| -rw-r--r-- | api/current.txt | 3 | ||||
| -rw-r--r-- | api/system-current.txt | 3 | ||||
| -rw-r--r-- | api/test-current.txt | 3 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 27 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ITelephony.aidl | 3 |
5 files changed, 35 insertions, 4 deletions
diff --git a/api/current.txt b/api/current.txt index fc7e6ea96c0e..9a56a299aaa2 100644 --- a/api/current.txt +++ b/api/current.txt @@ -39992,7 +39992,8 @@ package android.telephony { method public boolean isVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle); method public boolean isWorldPhone(); method public void listen(android.telephony.PhoneStateListener, int); - method public boolean sendDialerCode(java.lang.String); + method public deprecated boolean sendDialerCode(java.lang.String); + method public void sendDialerSpecialCode(java.lang.String); method public java.lang.String sendEnvelopeWithStatus(java.lang.String); method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler); method public void setDataEnabled(boolean); diff --git a/api/system-current.txt b/api/system-current.txt index 3b26b7bcb009..d160c5e7c9d3 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -43399,7 +43399,8 @@ package android.telephony { method public boolean isWorldPhone(); method public void listen(android.telephony.PhoneStateListener, int); method public boolean needsOtaServiceProvisioning(); - method public boolean sendDialerCode(java.lang.String); + method public deprecated boolean sendDialerCode(java.lang.String); + method public void sendDialerSpecialCode(java.lang.String); method public java.lang.String sendEnvelopeWithStatus(java.lang.String); method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler); method public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>); diff --git a/api/test-current.txt b/api/test-current.txt index 136dff4adf01..d42d4f1fd30b 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -40183,7 +40183,8 @@ package android.telephony { method public boolean isVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle); method public boolean isWorldPhone(); method public void listen(android.telephony.PhoneStateListener, int); - method public boolean sendDialerCode(java.lang.String); + method public deprecated boolean sendDialerCode(java.lang.String); + method public void sendDialerSpecialCode(java.lang.String); method public java.lang.String sendEnvelopeWithStatus(java.lang.String); method public void sendUssdRequest(java.lang.String, android.telephony.TelephonyManager.OnReceiveUssdResponseCallback, android.os.Handler); method public void setDataEnabled(boolean); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 0eaa359898e6..dd23850c2fca 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -3080,7 +3080,7 @@ public class TelephonyManager { * * @param inputCode The special dialer code to send which follows the format of *#*#<code>#*#* * @return true if sent sucessfully, false otherwise - * + * @deprecated use {@link #sendDialerSpecialCode(String)} ()} instead. */ public boolean sendDialerCode(String inputCode) { try { @@ -3097,6 +3097,31 @@ public class TelephonyManager { } /** + * Send the special dialer code. The IPC caller must be the current default dialer or has + * carrier privileges. + * @see #hasCarrierPrivileges + * + * @param inputCode The special dialer code to send + * + * @throws SecurityException if the caller does not have carrier privileges or is not the + * current default dialer + * + * @throws IllegalStateException if telephony service is unavailable. + */ + public void sendDialerSpecialCode(String inputCode) { + try { + final ITelephony telephony = getITelephony(); + telephony.sendDialerSpecialCode(mContext.getOpPackageName(), inputCode); + } catch (RemoteException ex) { + // This could happen if binder process crashes. + ex.rethrowFromSystemServer(); + } catch (NullPointerException ex) { + // This could happen before phone restarts due to crashing + throw new IllegalStateException("Telephony service unavailable"); + } + } + + /** * Returns the IMS private user identity (IMPI) that was loaded from the ISIM. * @return the IMPI, or null if not present or not loaded * @hide diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 9d12c2499cfc..76138373f457 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -532,6 +532,9 @@ interface ITelephony { // Send the special dialer code. The IPC caller must be the current default dialer. boolean sendDialerCode(String callingPackageName, String inputCode); + // Send the special dialer code. The IPC caller must be the current default dialer. + void sendDialerSpecialCode(String callingPackageName, String inputCode); + /** * Returns the network type for data transmission * Legacy call, permission-free |