diff options
| author | 2014-07-07 23:34:23 +0000 | |
|---|---|---|
| committer | 2014-07-07 18:07:48 +0000 | |
| commit | eb2263dd72ed40b47337fcd12189a4f268584b8b (patch) | |
| tree | dae80311bf5c74005a83022734870e4b8a1a4f2e | |
| parent | 3b83426718b772bd757a366cb9a00265aba9f49b (diff) | |
| parent | 762d5a091f5e19b568bb0ff81a2cb6785b69075f (diff) | |
Merge "SIM based carrier app privileges."
| -rw-r--r-- | api/current.txt | 15 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 34 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/ITelephony.aidl | 12 |
3 files changed, 56 insertions, 5 deletions
diff --git a/api/current.txt b/api/current.txt index d6e66ee7b515..7478a5a895c6 100644 --- a/api/current.txt +++ b/api/current.txt @@ -16288,20 +16288,20 @@ package android.net { method public void unregisterDefaultNetworkActiveListener(android.net.ConnectivityManager.OnNetworkActiveListener); method public void unregisterNetworkCallback(android.net.ConnectivityManager.NetworkCallback); field public static final deprecated java.lang.String ACTION_BACKGROUND_DATA_SETTING_CHANGED = "android.net.conn.BACKGROUND_DATA_SETTING_CHANGED"; + field public static final java.lang.String ACTION_CAPTIVE_PORTAL_DETECTED = "android.net.conn.CAPTIVE_PORTAL_DETECTED"; + field public static final java.lang.String ACTION_CAPTIVE_PORTAL_SIGN_IN = "android.net.conn.CAPTIVE_PORTAL_SIGN_IN"; + field public static final int CAPTIVE_PORTAL_DISCONNECT = 2; // 0x2 + field public static final int CAPTIVE_PORTAL_SIGNED_IN = 1; // 0x1 field public static final java.lang.String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE"; field public static final deprecated int DEFAULT_NETWORK_PREFERENCE = 1; // 0x1 field public static final java.lang.String EXTRA_EXTRA_INFO = "extraInfo"; field public static final java.lang.String EXTRA_IS_FAILOVER = "isFailover"; + field public static final java.lang.String EXTRA_NETWORK = "network"; field public static final deprecated java.lang.String EXTRA_NETWORK_INFO = "networkInfo"; field public static final java.lang.String EXTRA_NETWORK_TYPE = "networkType"; field public static final java.lang.String EXTRA_NO_CONNECTIVITY = "noConnectivity"; field public static final java.lang.String EXTRA_OTHER_NETWORK_INFO = "otherNetwork"; field public static final java.lang.String EXTRA_REASON = "reason"; - field public static final java.lang.String ACTION_CAPTIVE_PORTAL_DETECTED = "android.net.conn.CAPTIVE_PORTAL_DETECTED"; - field public static final java.lang.String ACTION_CAPTIVE_PORTAL_SIGN_IN = "android.net.conn.CAPTIVE_PORTAL_SIGN_IN"; - field public static final java.lang.String EXTRA_NETWORK = "network"; - field public static final int CAPTIVE_PORTAL_SIGNED_IN = 1; - field public static final int CAPTIVE_PORTAL_DISCONNECT = 2; field public static final int TYPE_BLUETOOTH = 7; // 0x7 field public static final int TYPE_DUMMY = 8; // 0x8 field public static final int TYPE_ETHERNET = 9; // 0x9 @@ -28327,6 +28327,7 @@ package android.telephony { method public java.lang.String getSubscriberId(); method public java.lang.String getVoiceMailAlphaTag(); method public java.lang.String getVoiceMailNumber(); + method public int hasCarrierPrivileges(); method public boolean hasIccCard(); method public boolean isNetworkRoaming(); method public void listen(android.telephony.PhoneStateListener, int); @@ -28335,6 +28336,10 @@ package android.telephony { field public static final int CALL_STATE_IDLE = 0; // 0x0 field public static final int CALL_STATE_OFFHOOK = 2; // 0x2 field public static final int CALL_STATE_RINGING = 1; // 0x1 + field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe + field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1 + field public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; // 0x0 + field public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; // 0xffffffff field public static final int DATA_ACTIVITY_DORMANT = 4; // 0x4 field public static final int DATA_ACTIVITY_IN = 1; // 0x1 field public static final int DATA_ACTIVITY_INOUT = 3; // 0x3 diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index bd621e8e1932..b29cc126bb01 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -2812,6 +2812,40 @@ public class TelephonyManager { } /** + * Values used to return status for hasCarrierPrivileges call. + */ + public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; + public static final int CARRIER_PRIVILEGE_STATUS_NO_ACCESS = 0; + public static final int CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED = -1; + public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; + + /** + * Has the calling application been granted carrier privileges by the carrier. + * + * If any of the packages in the calling UID has carrier privileges, the + * call will return true. This access is granted by the owner of the UICC + * card and does not depend on the registered carrier. + * + * TODO: Add a link to documentation. + * + * @return CARRIER_PRIVILEGE_STATUS_HAS_ACCESS if the app has carrier privileges. + * CARRIER_PRIVILEGE_STATUS_NO_ACCESS if the app does not have carrier privileges. + * CARRIER_PRIVILEGE_STATUS_RULES_NOT_LOADED if the carrier rules are not loaded. + * CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES if there was an error loading carrier + * rules (or if there are no rules). + */ + public int hasCarrierPrivileges() { + try { + return getITelephony().hasCarrierPrivileges(); + } catch (RemoteException ex) { + Rlog.e(TAG, "hasCarrierPrivileges RemoteException", ex); + } catch (NullPointerException ex) { + Rlog.e(TAG, "hasCarrierPrivileges NPE", ex); + } + return CARRIER_PRIVILEGE_STATUS_NO_ACCESS; + } + + /** * Expose the rest of ITelephony to @SystemApi */ diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index ee04c06d34e7..5b6db4d1b882 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -633,5 +633,17 @@ interface ITelephony { */ void setImsRegistrationState(boolean registered); + /** + * Has the calling application been granted special privileges by the carrier. + * + * If any of the packages in the calling UID has carrier privileges, the + * call will return true. This access is granted by the owner of the UICC + * card and does not depend on the registered carrier. + * + * TODO: Add a link to documentation. + * + * @return carrier privelege status defined in TelephonyManager. + */ + int hasCarrierPrivileges(); } |