Merge "cold sim clean up" into nyc-mr1-dev
am: ba3428f01b
* commit 'ba3428f01b8cc112cd85d1c4ffcc1407a3b8b7c6':
cold sim clean up
Change-Id: I5a2e24d997408badd6db7576b2fa206eb9e5c4ca
This commit is contained in:
@@ -51,6 +51,15 @@ public class NetworkMisc implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public boolean acceptUnvalidated;
|
public boolean acceptUnvalidated;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set to avoid surfacing the "Sign in to network" notification.
|
||||||
|
* if carrier receivers/apps are registered to handle the carrier-specific provisioning
|
||||||
|
* procedure, a carrier specific provisioning notification will be placed.
|
||||||
|
* only one notification should be displayed. This field is set based on
|
||||||
|
* which notification should be used for provisioning.
|
||||||
|
*/
|
||||||
|
public boolean provisioningNotificationDisabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For mobile networks, this is the subscriber ID (such as IMSI).
|
* For mobile networks, this is the subscriber ID (such as IMSI).
|
||||||
*/
|
*/
|
||||||
@@ -65,6 +74,7 @@ public class NetworkMisc implements Parcelable {
|
|||||||
explicitlySelected = nm.explicitlySelected;
|
explicitlySelected = nm.explicitlySelected;
|
||||||
acceptUnvalidated = nm.acceptUnvalidated;
|
acceptUnvalidated = nm.acceptUnvalidated;
|
||||||
subscriberId = nm.subscriberId;
|
subscriberId = nm.subscriberId;
|
||||||
|
provisioningNotificationDisabled = nm.provisioningNotificationDisabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,6 +89,7 @@ public class NetworkMisc implements Parcelable {
|
|||||||
out.writeInt(explicitlySelected ? 1 : 0);
|
out.writeInt(explicitlySelected ? 1 : 0);
|
||||||
out.writeInt(acceptUnvalidated ? 1 : 0);
|
out.writeInt(acceptUnvalidated ? 1 : 0);
|
||||||
out.writeString(subscriberId);
|
out.writeString(subscriberId);
|
||||||
|
out.writeInt(provisioningNotificationDisabled ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() {
|
public static final Creator<NetworkMisc> CREATOR = new Creator<NetworkMisc>() {
|
||||||
@@ -89,6 +100,7 @@ public class NetworkMisc implements Parcelable {
|
|||||||
networkMisc.explicitlySelected = in.readInt() != 0;
|
networkMisc.explicitlySelected = in.readInt() != 0;
|
||||||
networkMisc.acceptUnvalidated = in.readInt() != 0;
|
networkMisc.acceptUnvalidated = in.readInt() != 0;
|
||||||
networkMisc.subscriberId = in.readString();
|
networkMisc.subscriberId = in.readString();
|
||||||
|
networkMisc.provisioningNotificationDisabled = in.readInt() != 0;
|
||||||
return networkMisc;
|
return networkMisc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -810,7 +810,7 @@ public class NetworkControllerImpl extends BroadcastReceiver
|
|||||||
|
|
||||||
private SubscriptionInfo addSignalController(int id, int simSlotIndex) {
|
private SubscriptionInfo addSignalController(int id, int simSlotIndex) {
|
||||||
SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0,
|
SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0,
|
||||||
null, 0, 0, "", SubscriptionManager.SIM_PROVISIONED);
|
null, 0, 0, "");
|
||||||
mMobileSignalControllers.put(id, new MobileSignalController(mContext,
|
mMobileSignalControllers.put(id, new MobileSignalController(mContext,
|
||||||
mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info,
|
mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info,
|
||||||
mSubDefaults, mReceiverHandler.getLooper()));
|
mSubDefaults, mReceiverHandler.getLooper()));
|
||||||
|
|||||||
@@ -2150,9 +2150,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
loge("EVENT_PROVISIONING_NOTIFICATION from unknown NetworkMonitor");
|
loge("EVENT_PROVISIONING_NOTIFICATION from unknown NetworkMonitor");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
setProvNotificationVisibleIntent(true, netId, NotificationType.SIGN_IN,
|
if (!nai.networkMisc.provisioningNotificationDisabled) {
|
||||||
nai.networkInfo.getType(), nai.networkInfo.getExtraInfo(),
|
setProvNotificationVisibleIntent(true, netId, NotificationType.SIGN_IN,
|
||||||
(PendingIntent)msg.obj, nai.networkMisc.explicitlySelected);
|
nai.networkInfo.getType(), nai.networkInfo.getExtraInfo(),
|
||||||
|
(PendingIntent)msg.obj, nai.networkMisc.explicitlySelected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2553,6 +2555,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
|
|
||||||
PendingIntent pendingIntent = PendingIntent.getActivityAsUser(
|
PendingIntent pendingIntent = PendingIntent.getActivityAsUser(
|
||||||
mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT);
|
mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT, null, UserHandle.CURRENT);
|
||||||
|
|
||||||
setProvNotificationVisibleIntent(true, nai.network.netId, NotificationType.NO_INTERNET,
|
setProvNotificationVisibleIntent(true, nai.network.netId, NotificationType.NO_INTERNET,
|
||||||
nai.networkInfo.getType(), nai.networkInfo.getExtraInfo(), pendingIntent, true);
|
nai.networkInfo.getType(), nai.networkInfo.getExtraInfo(), pendingIntent, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,6 @@ import com.android.internal.util.Protocol;
|
|||||||
import com.android.internal.util.State;
|
import com.android.internal.util.State;
|
||||||
import com.android.internal.util.StateMachine;
|
import com.android.internal.util.StateMachine;
|
||||||
import com.android.internal.util.WakeupMessage;
|
import com.android.internal.util.WakeupMessage;
|
||||||
import com.android.server.connectivity.NetworkAgentInfo;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
@@ -618,7 +617,7 @@ public class NetworkMonitor extends StateMachine {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exit() {
|
public void exit() {
|
||||||
removeMessages(CMD_CAPTIVE_PORTAL_RECHECK);
|
removeMessages(CMD_CAPTIVE_PORTAL_RECHECK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -675,18 +675,37 @@ public class CarrierConfigManager {
|
|||||||
public static final String KEY_MMS_USER_AGENT_STRING = "userAgent";
|
public static final String KEY_MMS_USER_AGENT_STRING = "userAgent";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If carriers require differentiate un-provisioned status: cold sim or out of credit sim
|
* A list of component name of carrier signalling receivers which are interested in intent
|
||||||
* a package name and activity name can be provided to launch a supported carrier application
|
* android.intent.action.CARRIER_SIGNAL_REDIRECTED.
|
||||||
* that check the sim provisioning status
|
* Example:
|
||||||
* The first element is the package name and the second element is the activity name
|
* <item>com.google.android.carrierPackageName/.CarrierSignalReceiverNameA</item>
|
||||||
* of the provisioning app
|
* <item>com.google.android.carrierPackageName/.CarrierSignalReceiverNameB</item>
|
||||||
* example:
|
|
||||||
* <item>com.google.android.carrierPackageName</item>
|
|
||||||
* <item>com.google.android.carrierPackageName.CarrierActivityName</item>
|
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public static final String KEY_SIM_PROVISIONING_STATUS_DETECTION_CARRIER_APP_STRING_ARRAY =
|
public static final String KEY_SIGNAL_REDIRECTION_RECEIVER_STRING_ARRAY =
|
||||||
"sim_state_detection_carrier_app_string_array";
|
"signal_redirection_receiver_string_array";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A list of component name of carrier signalling receivers which are interested in intent
|
||||||
|
* android.intent.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED.
|
||||||
|
* Example:
|
||||||
|
* <item>com.google.android.carrierPackageName/.CarrierSignalReceiverNameA</item>
|
||||||
|
* <item>com.google.android.carrierPackageName/.CarrierSignalReceiverNameB</item>
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String KEY_SIGNAL_DCFAILURE_RECEIVER_STRING_ARRAY =
|
||||||
|
"signal_dcfailure_receiver_string_array";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A list of component name of carrier signalling receivers which are interested in intent
|
||||||
|
* android.intent.action.CARRIER_SIGNAL_PCO_VALUE.
|
||||||
|
* Example:
|
||||||
|
* <item>com.google.android.carrierPackageName/.CarrierSignalReceiverNameA</item>
|
||||||
|
* <item>com.google.android.carrierPackageName/.CarrierSignalReceiverNameB</item>
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String KEY_SIGNAL_PCO_RECEIVER_STRING_ARRAY =
|
||||||
|
"signal_pco_receiver_string_array";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines whether the carrier supports making non-emergency phone calls while the phone is
|
* Determines whether the carrier supports making non-emergency phone calls while the phone is
|
||||||
@@ -864,9 +883,10 @@ public class CarrierConfigManager {
|
|||||||
sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true);
|
sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true);
|
||||||
sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false);
|
sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false);
|
||||||
|
|
||||||
// Used for Sim card State detection app
|
// Carrier Signalling Receivers
|
||||||
sDefaults.putStringArray(KEY_SIM_PROVISIONING_STATUS_DETECTION_CARRIER_APP_STRING_ARRAY,
|
sDefaults.putStringArray(KEY_SIGNAL_REDIRECTION_RECEIVER_STRING_ARRAY, null);
|
||||||
null);
|
sDefaults.putStringArray(KEY_SIGNAL_DCFAILURE_RECEIVER_STRING_ARRAY, null);
|
||||||
|
sDefaults.putStringArray(KEY_SIGNAL_PCO_RECEIVER_STRING_ARRAY, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -89,14 +89,6 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
private int mDataRoaming;
|
private int mDataRoaming;
|
||||||
|
|
||||||
/**
|
|
||||||
* Sim Provisioning Status:
|
|
||||||
* {@See SubscriptionManager#SIM_PROVISIONED}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_COLD}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT}
|
|
||||||
*/
|
|
||||||
private int mSimProvisioningStatus;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SIM Icon bitmap
|
* SIM Icon bitmap
|
||||||
*/
|
*/
|
||||||
@@ -122,7 +114,7 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
*/
|
*/
|
||||||
public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName,
|
public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName,
|
||||||
CharSequence carrierName, int nameSource, int iconTint, String number, int roaming,
|
CharSequence carrierName, int nameSource, int iconTint, String number, int roaming,
|
||||||
Bitmap icon, int mcc, int mnc, String countryIso, int simProvisioningStatus) {
|
Bitmap icon, int mcc, int mnc, String countryIso) {
|
||||||
this.mId = id;
|
this.mId = id;
|
||||||
this.mIccId = iccId;
|
this.mIccId = iccId;
|
||||||
this.mSimSlotIndex = simSlotIndex;
|
this.mSimSlotIndex = simSlotIndex;
|
||||||
@@ -136,7 +128,6 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
this.mMcc = mcc;
|
this.mMcc = mcc;
|
||||||
this.mMnc = mnc;
|
this.mMnc = mnc;
|
||||||
this.mCountryIso = countryIso;
|
this.mCountryIso = countryIso;
|
||||||
this.mSimProvisioningStatus = simProvisioningStatus;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -272,17 +263,6 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
return this.mDataRoaming;
|
return this.mDataRoaming;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Sim Provisioning Status
|
|
||||||
* {@See SubscriptionManager#SIM_PROVISIONED}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_COLD}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT}
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public int getSimProvisioningStatus() {
|
|
||||||
return this.mSimProvisioningStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the MCC.
|
* @return the MCC.
|
||||||
*/
|
*/
|
||||||
@@ -319,12 +299,10 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
int mcc = source.readInt();
|
int mcc = source.readInt();
|
||||||
int mnc = source.readInt();
|
int mnc = source.readInt();
|
||||||
String countryIso = source.readString();
|
String countryIso = source.readString();
|
||||||
int simProvisioningStatus = source.readInt();
|
|
||||||
Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source);
|
Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source);
|
||||||
|
|
||||||
return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName,
|
return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName,
|
||||||
nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso,
|
nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso);
|
||||||
simProvisioningStatus);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -347,7 +325,6 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
dest.writeInt(mMcc);
|
dest.writeInt(mMcc);
|
||||||
dest.writeInt(mMnc);
|
dest.writeInt(mMnc);
|
||||||
dest.writeString(mCountryIso);
|
dest.writeString(mCountryIso);
|
||||||
dest.writeInt(mSimProvisioningStatus);
|
|
||||||
mIconBitmap.writeToParcel(dest, flags);
|
mIconBitmap.writeToParcel(dest, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -378,6 +355,6 @@ public class SubscriptionInfo implements Parcelable {
|
|||||||
+ " displayName=" + mDisplayName + " carrierName=" + mCarrierName
|
+ " displayName=" + mDisplayName + " carrierName=" + mCarrierName
|
||||||
+ " nameSource=" + mNameSource + " iconTint=" + mIconTint
|
+ " nameSource=" + mNameSource + " iconTint=" + mIconTint
|
||||||
+ " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc " + mMcc
|
+ " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc " + mMcc
|
||||||
+ " mnc " + mMnc + " SimProvisioningStatus " + mSimProvisioningStatus +"}";
|
+ " mnc " + mMnc + "}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,25 +232,12 @@ public class SubscriptionManager {
|
|||||||
/** Indicates that data roaming is disabled for a subscription */
|
/** Indicates that data roaming is disabled for a subscription */
|
||||||
public static final int DATA_ROAMING_DISABLE = 0;
|
public static final int DATA_ROAMING_DISABLE = 0;
|
||||||
|
|
||||||
/** Sim provisioning status: provisioned */
|
|
||||||
/** @hide */
|
|
||||||
public static final int SIM_PROVISIONED = 0;
|
|
||||||
|
|
||||||
/** Sim provisioning status: un-provisioned due to cold sim */
|
|
||||||
/** @hide */
|
|
||||||
public static final int SIM_UNPROVISIONED_COLD = 1;
|
|
||||||
|
|
||||||
/** Sim provisioning status: un-provisioned due to out of credit */
|
|
||||||
/** @hide */
|
|
||||||
public static final int SIM_UNPROVISIONED_OUT_OF_CREDIT = 2;
|
|
||||||
|
|
||||||
/** Maximum possible sim provisioning status */
|
|
||||||
/** @hide */
|
|
||||||
public static final int MAX_SIM_PROVISIONING_STATUS = SIM_UNPROVISIONED_OUT_OF_CREDIT;
|
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
public static final int DATA_ROAMING_DEFAULT = DATA_ROAMING_DISABLE;
|
public static final int DATA_ROAMING_DEFAULT = DATA_ROAMING_DISABLE;
|
||||||
|
|
||||||
|
/** @hide */
|
||||||
|
public static final int SIM_PROVISIONED = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TelephonyProvider column name for the MCC associated with a SIM.
|
* TelephonyProvider column name for the MCC associated with a SIM.
|
||||||
* <P>Type: INTEGER (int)</P>
|
* <P>Type: INTEGER (int)</P>
|
||||||
@@ -842,40 +829,6 @@ public class SubscriptionManager {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set Sim Provisioning Status by subscription ID
|
|
||||||
* @param simProvisioningStatus with the subscription
|
|
||||||
* {@See SubscriptionManager#SIM_PROVISIONED}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_COLD}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT}
|
|
||||||
* @param subId the unique SubInfoRecord index in database
|
|
||||||
* @return the number of records updated
|
|
||||||
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
public int setSimProvisioningStatus(int simProvisioningStatus, int subId) {
|
|
||||||
if (VDBG) {
|
|
||||||
logd("[setSimProvisioningStatus]+ status:" + simProvisioningStatus + " subId:" + subId);
|
|
||||||
}
|
|
||||||
if (simProvisioningStatus < 0 || simProvisioningStatus > MAX_SIM_PROVISIONING_STATUS ||
|
|
||||||
!isValidSubscriptionId(subId)) {
|
|
||||||
logd("[setSimProvisioningStatus]- fail");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int result = 0;
|
|
||||||
|
|
||||||
try {
|
|
||||||
ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
|
|
||||||
if (iSub != null) {
|
|
||||||
result = iSub.setSimProvisioningStatus(simProvisioningStatus, subId);
|
|
||||||
}
|
|
||||||
} catch (RemoteException ex) {
|
|
||||||
// ignore it
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get slotId associated with the subscription.
|
* Get slotId associated with the subscription.
|
||||||
* @return slotId as a positive integer or a negative value if an error either
|
* @return slotId as a positive integer or a negative value if an error either
|
||||||
|
|||||||
@@ -5479,4 +5479,41 @@ public class TelephonyManager {
|
|||||||
}
|
}
|
||||||
return new ArrayList<CarrierIdentifier>(0);
|
return new ArrayList<CarrierIdentifier>(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action set from carrier signalling broadcast receivers to enable/disable metered apns
|
||||||
|
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
|
||||||
|
* @param subId the subscription ID that this action applies to.
|
||||||
|
* @param enabled control enable or disable metered apns.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public void carrierActionSetMeteredApnsEnabled(int subId, boolean enabled) {
|
||||||
|
try {
|
||||||
|
ITelephony service = getITelephony();
|
||||||
|
if (service != null) {
|
||||||
|
service.carrierActionSetMeteredApnsEnabled(subId, enabled);
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Error calling ITelephony#carrierActionSetMeteredApnsEnabled", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action set from carrier signalling broadcast receivers to enable/disable radio
|
||||||
|
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
|
||||||
|
* @param subId the subscription ID that this action applies to.
|
||||||
|
* @param enabled control enable or disable radio.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public void carrierActionSetRadioEnabled(int subId, boolean enabled) {
|
||||||
|
try {
|
||||||
|
ITelephony service = getITelephony();
|
||||||
|
if (service != null) {
|
||||||
|
service.carrierActionSetRadioEnabled(subId, enabled);
|
||||||
|
}
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Error calling ITelephony#carrierActionSetRadioEnabled", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,17 +117,6 @@ interface ISub {
|
|||||||
*/
|
*/
|
||||||
int setDisplayName(String displayName, int subId);
|
int setDisplayName(String displayName, int subId);
|
||||||
|
|
||||||
/**
|
|
||||||
* Set Sim Provisioning Status by subscription ID
|
|
||||||
* @param simProvisionStatus with the subscription:
|
|
||||||
* {@See SubscriptionManager#SIM_PROVISIONED}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_COLD}
|
|
||||||
* {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT}
|
|
||||||
* @param subId the unique SubInfoRecord index in database
|
|
||||||
* @return the number of records updated
|
|
||||||
*/
|
|
||||||
int setSimProvisioningStatus(int simProvisioningStatus, int subId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set display name by simInfo index with name source
|
* Set display name by simInfo index with name source
|
||||||
* @param displayName the display name of SIM card
|
* @param displayName the display name of SIM card
|
||||||
|
|||||||
@@ -1132,4 +1132,22 @@ interface ITelephony {
|
|||||||
* means all carriers are allowed.
|
* means all carriers are allowed.
|
||||||
*/
|
*/
|
||||||
List<CarrierIdentifier> getAllowedCarriers(int slotId);
|
List<CarrierIdentifier> getAllowedCarriers(int slotId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action set from carrier signalling broadcast receivers to enable/disable metered apns
|
||||||
|
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
|
||||||
|
* @param subId the subscription ID that this action applies to.
|
||||||
|
* @param enabled control enable or disable metered apns.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
void carrierActionSetMeteredApnsEnabled(int subId, boolean visible);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Action set from carrier signalling broadcast receivers to enable/disable radio
|
||||||
|
* Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required
|
||||||
|
* @param subId the subscription ID that this action applies to.
|
||||||
|
* @param enabled control enable or disable radio.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
void carrierActionSetRadioEnabled(int subId, boolean enabled);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -402,34 +402,54 @@ public class TelephonyIntents {
|
|||||||
/**
|
/**
|
||||||
* <p>Broadcast Action: when data connections get redirected with validation failure.
|
* <p>Broadcast Action: when data connections get redirected with validation failure.
|
||||||
* intended for sim/account status checks and only sent to the specified carrier app
|
* intended for sim/account status checks and only sent to the specified carrier app
|
||||||
* feedback is via carrier/system APIs to report cold-sim, out-of-credit-sim, etc
|
|
||||||
* The intent will have the following extra values:</p>
|
* The intent will have the following extra values:</p>
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>redirectUrl</li><dd>A string with the redirection url info.</dd>
|
* <li>apnType</li><dd>A string with the apn type.</dd>
|
||||||
* <li>subId</li><dd>Sub Id which associated the data redirection.</dd>
|
* <li>redirectionUrl</li><dd>redirection url string</dd>
|
||||||
|
* <li>subId</dt><li>Sub Id which associated the data connection failure.</dd>
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p class="note">This is a protected intent that can only be sent by the system.</p>
|
* <p class="note">This is a protected intent that can only be sent by the system.</p>
|
||||||
*/
|
*/
|
||||||
public static final String ACTION_DATA_CONNECTION_REDIRECTED =
|
public static final String ACTION_CARRIER_SIGNAL_REDIRECTED =
|
||||||
"android.intent.action.REDIRECTION_DETECTED";
|
"android.intent.action.CARRIER_SIGNAL_REDIRECTED";
|
||||||
/**
|
/**
|
||||||
* <p>Broadcast Action: when data connections setup fails.
|
* <p>Broadcast Action: when data connections setup fails.
|
||||||
* intended for sim/account status checks and only sent to the specified carrier app
|
* intended for sim/account status checks and only sent to the specified carrier app
|
||||||
* feedback is via carrier/system APIs to report cold-sim, out-of-credit-sim, etc
|
|
||||||
* The intent will have the following extra values:</p>
|
* The intent will have the following extra values:</p>
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>apnType</li><dd>A string with the apn type.</dd>
|
* <li>apnType</li><dd>A string with the apn type.</dd>
|
||||||
* <li>errorCode</li><dd>A integer with dataFailCause.</dd>
|
* <li>errorCode</li><dd>A integer with dataFailCause.</dd>
|
||||||
* <li>subId</dt><li>Sub Id which associated the data redirection.</dd>
|
* <li>subId</dt><li>Sub Id which associated the data connection failure.</dd>
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p class="note">This is a protected intent that can only be sent by the system. </p>
|
* <p class="note">This is a protected intent that can only be sent by the system. </p>
|
||||||
*/
|
*/
|
||||||
public static final String ACTION_REQUEST_NETWORK_FAILED =
|
public static final String ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED =
|
||||||
"android.intent.action.REQUEST_NETWORK_FAILED";
|
"android.intent.action.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Broadcast action to trigger CI OMA-DM Session.
|
* <p>Broadcast Action: when pco value is available.
|
||||||
|
* intended for sim/account status checks and only sent to the specified carrier app
|
||||||
|
* The intent will have the following extra values:</p>
|
||||||
|
* <ul>
|
||||||
|
* <li>apnType</li><dd>A string with the apn type.</dd>
|
||||||
|
* <li>pcoValue</li><dd>A integer read from modem.</dd>
|
||||||
|
* <li>subId</dt><li>Sub Id which associated the data connection.</dd>
|
||||||
|
* </ul>
|
||||||
|
* <p class="note">This is a protected intent that can only be sent by the system. </p>
|
||||||
*/
|
*/
|
||||||
|
public static final String ACTION_CARRIER_SIGNAL_PCO_VALUE =
|
||||||
|
"android.intent.action.CARRIER_SIGNAL_PCO_VALUE";
|
||||||
|
|
||||||
|
// CARRIER_SIGNAL_ACTION extra keys
|
||||||
|
public static final String EXTRA_REDIRECTION_URL_KEY = "redirectionUrl";
|
||||||
|
public static final String EXTRA_ERROR_CODE_KEY = "errorCode";
|
||||||
|
public static final String EXTRA_APN_TYPE_KEY = "apnType";
|
||||||
|
public static final String EXTRA_PCO_KEY = "pco";
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Broadcast action to trigger CI OMA-DM Session.
|
||||||
|
*/
|
||||||
public static final String ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE =
|
public static final String ACTION_REQUEST_OMADM_CONFIGURATION_UPDATE =
|
||||||
"com.android.omadm.service.CONFIGURATION_UPDATE";
|
"com.android.omadm.service.CONFIGURATION_UPDATE";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user