Merge "Redesign the setPreferredNetworkType" am: 53b272d680 am: c64805d392

Change-Id: I9580cbe5bc5d56678a2b14c9daee466209ffe045
This commit is contained in:
Automerger Merge Worker
2020-01-25 00:17:06 +00:00
5 changed files with 107 additions and 2 deletions

View File

@@ -7181,6 +7181,7 @@ package android.provider {
public static final class Telephony.SimInfo {
field public static final String ACCESS_RULES = "access_rules";
field public static final String ACCESS_RULES_FROM_CARRIER_CONFIGS = "access_rules_from_carrier_configs";
field public static final String ALLOWED_NETWORK_TYPES = "allowed_network_types";
field public static final String CARD_ID = "card_id";
field public static final String CARRIER_ID = "carrier_id";
field public static final String CARRIER_NAME = "carrier_name";
@@ -9449,6 +9450,7 @@ package android.telephony {
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void enableVideoCalling(boolean);
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(int);
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List<android.service.carrier.CarrierIdentifier> getAllowedCarriers(int);
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public long getAllowedNetworkTypes();
method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int);
method public java.util.List<java.lang.String> getCarrierPackageNamesForIntent(android.content.Intent);
method public java.util.List<java.lang.String> getCarrierPackageNamesForIntentAndPhone(android.content.Intent, int);
@@ -9526,6 +9528,7 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean resetRadioConfig();
method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings();
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List<android.service.carrier.CarrierIdentifier>);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setAllowedNetworkTypes(long);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);

View File

@@ -5327,5 +5327,11 @@ public final class Telephony {
/** Whether uicc applications is set to be enabled or disabled. By default it's enabled. */
public static final String UICC_APPLICATIONS_ENABLED = "uicc_applications_enabled";
/**
* TelephonyProvider column name for allowed network types. Indicate which network types
* are allowed. Default is -1.
*/
public static final String ALLOWED_NETWORK_TYPES = "allowed_network_types";
}
}

View File

@@ -782,6 +782,12 @@ public class SubscriptionManager {
*/
public static final String UICC_APPLICATIONS_ENABLED = SimInfo.UICC_APPLICATIONS_ENABLED;
/**
* Indicate which network type is allowed. By default it's enabled.
* @hide
*/
public static final String ALLOWED_NETWORK_TYPES = SimInfo.ALLOWED_NETWORK_TYPES;
/**
* Broadcast Action: The user has changed one of the default subs related to
* data, phone calls, or sms</p>
@@ -2293,7 +2299,28 @@ public class SubscriptionManager {
try {
return Integer.parseInt(result);
} catch (NumberFormatException err) {
logd("getBooleanSubscriptionProperty NumberFormat exception");
logd("getIntegerSubscriptionProperty NumberFormat exception");
}
}
return defValue;
}
/**
* Returns long value corresponding to query result.
* @param subId Subscription Id of Subscription
* @param propKey Column name in SubscriptionInfo database
* @param defValue Default long value to be returned
* @return long result value to be returned
* @hide
*/
public static long getLongSubscriptionProperty(int subId, String propKey, long defValue,
Context context) {
String result = getSubscriptionProperty(subId, propKey, context);
if (result != null) {
try {
return Long.parseLong(result);
} catch (NumberFormatException err) {
logd("getLongSubscriptionProperty NumberFormat exception");
}
}
return defValue;

View File

@@ -7310,7 +7310,9 @@ public class TelephonyManager {
*
* @return the preferred network type.
* @hide
* @deprecated Use {@link #getPreferredNetworkTypeBitmask} instead.
*/
@Deprecated
@RequiresPermission((android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE))
@UnsupportedAppUsage
public @PrefNetworkMode int getPreferredNetworkType(int subId) {
@@ -7354,6 +7356,30 @@ public class TelephonyManager {
return 0;
}
/**
* Get the allowed network types.
*
* <p>Requires Permission:
* {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE}
* or that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).
*
* @return the allowed network type bitmask
* @hide
*/
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
@SystemApi
public @NetworkTypeBitMask long getAllowedNetworkTypes() {
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
return telephony.getAllowedNetworkTypes(getSubId());
}
} catch (RemoteException ex) {
Rlog.e(TAG, "getAllowedNetworkTypes RemoteException", ex);
}
return -1;
}
/**
* Sets the network selection mode to automatic.
*
@@ -7609,7 +7635,9 @@ public class TelephonyManager {
* @param networkType the preferred network type
* @return true on success; false on any failure.
* @hide
* @deprecated Use {@link #setPreferredNetworkTypeBitmask} instead.
*/
@Deprecated
@UnsupportedAppUsage
public boolean setPreferredNetworkType(int subId, @PrefNetworkMode int networkType) {
try {
@@ -7624,7 +7652,8 @@ public class TelephonyManager {
}
/**
* Set the preferred network type bitmask.
* Set the preferred network type bitmask but if {@link #setAllowedNetworkTypes} has been set,
* only the allowed network type will set to the modem.
*
* <p>If this object has been created with {@link #createForSubscriptionId}, applies to the
* given subId. Otherwise, applies to {@link SubscriptionManager#getDefaultSubscriptionId()}
@@ -7653,6 +7682,29 @@ public class TelephonyManager {
return false;
}
/**
* Set the allowed network types of the device. This is for carrier or privileged apps to
* enable/disable certain network types on the device. The user preferred network types should
* be set through {@link #setPreferredNetworkTypeBitmask}.
*
* @param allowedNetworkTypes The bitmask of allowed network types.
* @return true on success; false on any failure.
* @hide
*/
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
@SystemApi
public boolean setAllowedNetworkTypes(@NetworkTypeBitMask long allowedNetworkTypes) {
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
return telephony.setAllowedNetworkTypes(getSubId(), allowedNetworkTypes);
}
} catch (RemoteException ex) {
Rlog.e(TAG, "setAllowedNetworkTypes RemoteException", ex);
}
return false;
}
/**
* Set the preferred network type to global mode which includes LTE, CDMA, EvDo and GSM/WCDMA.
*

View File

@@ -926,6 +926,23 @@ interface ITelephony {
boolean setNetworkSelectionModeManual(
int subId, in OperatorInfo operatorInfo, boolean persisSelection);
/**
* Get the allowed network types that store in the telephony provider.
*
* @param subId the id of the subscription.
* @return allowedNetworkTypes the allowed network types.
*/
long getAllowedNetworkTypes(int subId);
/**
* Set the allowed network types.
*
* @param subId the id of the subscription.
* @param allowedNetworkTypes the allowed network types.
* @return true on success; false on any failure.
*/
boolean setAllowedNetworkTypes(int subId, long allowedNetworkTypes);
/**
* Set the preferred network type.
* Used for device configuration by some CDMA operators.