New generic intent for SIM Activation
New hidden intents and permissions for a generic SIM-activation
activity. New activity will handle generic SIM setup requests and then
delegate to the appropriate activation method (OTASP, HFA,
CARRIER_SETUP).
Change-Id: I1b22200544abefe486ec961b67a6e77b4d15aec3
diff --git a/api/system-current.txt b/api/system-current.txt
index 2cce10f..17549c4 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -134,6 +134,7 @@
field public static final java.lang.String PACKAGE_USAGE_STATS = "android.permission.PACKAGE_USAGE_STATS";
field public static final java.lang.String PACKAGE_VERIFICATION_AGENT = "android.permission.PACKAGE_VERIFICATION_AGENT";
field public static final java.lang.String PERFORM_CDMA_PROVISIONING = "android.permission.PERFORM_CDMA_PROVISIONING";
+ field public static final java.lang.String PERFORM_SIM_ACTIVATION = "android.permission.PERFORM_SIM_ACTIVATION";
field public static final deprecated java.lang.String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY";
field public static final java.lang.String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS";
field public static final java.lang.String PROVIDE_TRUST_AGENT = "android.permission.PROVIDE_TRUST_AGENT";
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 030b770..c95f19b 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1041,6 +1041,18 @@
*/
public static final String ACTION_CALL_PRIVILEGED = "android.intent.action.CALL_PRIVILEGED";
/**
+ * Activity action: Activate the current SIM card. If SIM cards do not require activation,
+ * sending this intent is a no-op.
+ * <p>Input: No data should be specified. get*Extra may have an optional
+ * {@link #EXTRA_SIM_ACTIVATION_RESPONSE} field containing a PendingIntent through which to
+ * send the activation result.
+ * <p>Output: nothing.
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_SIM_ACTIVATION_REQUEST =
+ "android.intent.action.SIM_ACTIVATION_REQUEST";
+ /**
* Activity Action: Send a message to someone specified by the data.
* <p>Input: {@link #getData} is URI describing the target.
* <p>Output: nothing.
@@ -3607,6 +3619,15 @@
/** {@hide} */
public static final String EXTRA_REASON = "android.intent.extra.REASON";
+ /**
+ * Optional {@link android.app.PendingIntent} extra used to deliver the result of the SIM
+ * activation request.
+ * TODO: Add information about the structure and response data used with the pending intent.
+ * @hide
+ */
+ public static final String EXTRA_SIM_ACTIVATION_RESPONSE =
+ "android.intent.extra.SIM_ACTIVATION_RESPONSE";
+
// ---------------------------------------------------------------------
// ---------------------------------------------------------------------
// Intent flags (see mFlags variable).
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 851c4bf..83cf7f9 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -2592,6 +2592,12 @@
android:description="@string/permdesc_performCdmaProvisioning"
android:protectionLevel="signature|system" />
+ <!-- @SystemApi Allows an application to perform SIM Activation @hide -->
+ <permission android:name="android.permission.PERFORM_SIM_ACTIVATION"
+ android:label="@string/permlab_performSimActivation"
+ android:description="@string/permdesc_performSimActivation"
+ android:protectionLevel="signature|system" />
+
<!-- @SystemApi Allows enabling/disabling location update notifications from
the radio.
<p>Not for use by third-party applications. -->
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 88225bd..5595c75 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1887,6 +1887,10 @@
<string name="permdesc_performCdmaProvisioning">Allows the app to start CDMA provisioning.
Malicious apps may unnecessarily start CDMA provisioning.</string>
+ <string name="permlab_performSimActivation">start SIM card setup</string>
+ <string name="permdesc_performSimActivation">Allows the app to handle SIM activation requests.
+ The app may directly perform activation or may delegate to another app.</string>
+
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
<string name="permlab_locationUpdates">control location update notifications</string>
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->