summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chen Xu <fionaxu@google.com> 2017-03-23 01:17:28 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-03-23 01:17:33 +0000
commit19091a0fbd58bfe15bd4408183a75583716d278c (patch)
treee0480f36818bf11358c8f135b28d2128ef19afa2
parent615ee4768b1a3bd8c77205cc1f2b451eb9277745 (diff)
parent388eab414779124f9b07837a2a9d5e4c6c1c068c (diff)
Merge "sendDialerCode API review"
-rw-r--r--api/current.txt3
-rw-r--r--api/system-current.txt3
-rw-r--r--api/test-current.txt3
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java27
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl3
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