summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShishir Agrawal <shishir@google.com>2014-11-09 16:16:06 -0800
committerShishir Agrawal <shishir@google.com>2014-11-12 09:38:18 -0800
commit5c1a63c2235c36ce0b520fa88a9d21ffe255756e (patch)
tree60a4b01ce24e19bb7e78f4f552bc0d001becb27e
parent89444a380d85f8961a4a900734590571375b4f3f (diff)
downloadframeworks_base-5c1a63c2235c36ce0b520fa88a9d21ffe255756e.zip
frameworks_base-5c1a63c2235c36ce0b520fa88a9d21ffe255756e.tar.gz
frameworks_base-5c1a63c2235c36ce0b520fa88a9d21ffe255756e.tar.bz2
Add new API to set voicemail number.
The API is protected by system or carrier privilege. Bug: 17393589 Change-Id: I33f4a00b30e0f5d72e5d53553a187d974872eab6
-rw-r--r--api/current.txt1
-rw-r--r--telephony/java/android/telephony/TelephonyManager.java35
-rw-r--r--telephony/java/com/android/internal/telephony/ITelephony.aidl5
3 files changed, 41 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt
index 1a882ac..c95ab40 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -28616,6 +28616,7 @@ package android.telephony {
method public boolean setGlobalPreferredNetworkType();
method public void setLine1NumberForDisplay(java.lang.String, java.lang.String);
method public boolean setOperatorBrandOverride(java.lang.String);
+ method public boolean setVoiceMailNumber(java.lang.String, java.lang.String);
field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE";
field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE";
field public static final int CALL_STATE_IDLE = 0; // 0x0
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index b06d44c..f2d859f 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -1973,6 +1973,41 @@ public class TelephonyManager {
}
/**
+ * Sets the voice mail number.
+ * <p>
+ * Requires Permission:
+ * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
+ * Or the calling app has carrier privileges. @see #hasCarrierPrivileges
+ *
+ * @param alphaTag The alpha tag to display.
+ * @param number The voicemail number.
+ */
+ public boolean setVoiceMailNumber(String alphaTag, String number) {
+ return setVoiceMailNumber(getDefaultSubscription(), alphaTag, number);
+ }
+
+ /**
+ * Sets the voicemail number for the given subscriber.
+ * <p>
+ * Requires Permission:
+ * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE}
+ * Or the calling app has carrier privileges. @see #hasCarrierPrivileges
+ *
+ * @param subId The subscriber id.
+ * @param alphaTag The alpha tag to display.
+ * @param number The voicemail number.
+ */
+ /** {@hide} */
+ public boolean setVoiceMailNumber(int subId, String alphaTag, String number) {
+ try {
+ return getITelephony().setVoiceMailNumber(subId, alphaTag, number);
+ } catch (RemoteException ex) {
+ } catch (NullPointerException ex) {
+ }
+ return false;
+ }
+
+ /**
* Returns the voice mail count. Return 0 if unavailable.
* <p>
* Requires Permission:
diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl
index c50261d..cbfa9f6 100644
--- a/telephony/java/com/android/internal/telephony/ITelephony.aidl
+++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl
@@ -417,6 +417,11 @@ interface ITelephony {
boolean needsOtaServiceProvisioning();
/**
+ * Sets the voicemail number for a particular subscriber.
+ */
+ boolean setVoiceMailNumber(int subId, String alphaTag, String number);
+
+ /**
* Returns the unread count of voicemails
*/
int getVoiceMessageCount();