Merge "new system API getRadioAccessFamily"
This commit is contained in:
@@ -5293,6 +5293,7 @@ package android.telephony {
|
||||
method public int getRadioPowerState();
|
||||
method public int getSimApplicationState();
|
||||
method public int getSimCardState();
|
||||
method public int getSupportedRadioAccessFamily();
|
||||
method public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
|
||||
method public android.telephony.UiccSlotInfo[] getUiccSlotsInfo();
|
||||
method public android.os.Bundle getVisualVoicemailSettings();
|
||||
@@ -5358,6 +5359,24 @@ package android.telephony {
|
||||
field public static final int NETWORK_MODE_TDSCDMA_WCDMA = 14; // 0xe
|
||||
field public static final int NETWORK_MODE_WCDMA_ONLY = 2; // 0x2
|
||||
field public static final int NETWORK_MODE_WCDMA_PREF = 0; // 0x0
|
||||
field public static final int NETWORK_TYPE_BITMASK_1xRTT = 128; // 0x80
|
||||
field public static final int NETWORK_TYPE_BITMASK_CDMA = 16; // 0x10
|
||||
field public static final int NETWORK_TYPE_BITMASK_EDGE = 4; // 0x4
|
||||
field public static final int NETWORK_TYPE_BITMASK_EHRPD = 16384; // 0x4000
|
||||
field public static final int NETWORK_TYPE_BITMASK_EVDO_0 = 32; // 0x20
|
||||
field public static final int NETWORK_TYPE_BITMASK_EVDO_A = 64; // 0x40
|
||||
field public static final int NETWORK_TYPE_BITMASK_EVDO_B = 4096; // 0x1000
|
||||
field public static final int NETWORK_TYPE_BITMASK_GPRS = 2; // 0x2
|
||||
field public static final int NETWORK_TYPE_BITMASK_GSM = 65536; // 0x10000
|
||||
field public static final int NETWORK_TYPE_BITMASK_HSDPA = 256; // 0x100
|
||||
field public static final int NETWORK_TYPE_BITMASK_HSPA = 1024; // 0x400
|
||||
field public static final int NETWORK_TYPE_BITMASK_HSPAP = 32768; // 0x8000
|
||||
field public static final int NETWORK_TYPE_BITMASK_HSUPA = 512; // 0x200
|
||||
field public static final int NETWORK_TYPE_BITMASK_LTE = 8192; // 0x2000
|
||||
field public static final int NETWORK_TYPE_BITMASK_LTE_CA = 524288; // 0x80000
|
||||
field public static final int NETWORK_TYPE_BITMASK_TD_SCDMA = 131072; // 0x20000
|
||||
field public static final int NETWORK_TYPE_BITMASK_UMTS = 8; // 0x8
|
||||
field public static final int NETWORK_TYPE_BITMASK_UNKNOWN = 1; // 0x1
|
||||
field public static final int RADIO_POWER_OFF = 0; // 0x0
|
||||
field public static final int RADIO_POWER_ON = 1; // 0x1
|
||||
field public static final int RADIO_POWER_UNAVAILABLE = 2; // 0x2
|
||||
|
||||
@@ -29,29 +29,32 @@ import com.android.internal.telephony.RILConstants;
|
||||
*/
|
||||
public class RadioAccessFamily implements Parcelable {
|
||||
|
||||
// Radio Access Family
|
||||
/**
|
||||
* TODO: get rid of RAF definition in RadioAccessFamily and
|
||||
* use {@link TelephonyManager.NetworkTypeBitMask}
|
||||
*/
|
||||
// 2G
|
||||
public static final int RAF_UNKNOWN = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN);
|
||||
public static final int RAF_GSM = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_GSM);
|
||||
public static final int RAF_GPRS = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_GPRS);
|
||||
public static final int RAF_EDGE = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EDGE);
|
||||
public static final int RAF_IS95A = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IS95A);
|
||||
public static final int RAF_IS95B = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IS95B);
|
||||
public static final int RAF_1xRTT = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT);
|
||||
public static final int RAF_UNKNOWN = TelephonyManager.NETWORK_TYPE_BITMASK_UNKNOWN;
|
||||
public static final int RAF_GSM = TelephonyManager.NETWORK_TYPE_BITMASK_GSM;
|
||||
public static final int RAF_GPRS = TelephonyManager.NETWORK_TYPE_BITMASK_GPRS;
|
||||
public static final int RAF_EDGE = TelephonyManager.NETWORK_TYPE_BITMASK_EDGE;
|
||||
public static final int RAF_IS95A = TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
|
||||
public static final int RAF_IS95B = TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
|
||||
public static final int RAF_1xRTT = TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT;
|
||||
// 3G
|
||||
public static final int RAF_EVDO_0 = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0);
|
||||
public static final int RAF_EVDO_A = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A);
|
||||
public static final int RAF_EVDO_B = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B);
|
||||
public static final int RAF_EHRPD = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD);
|
||||
public static final int RAF_HSUPA = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA);
|
||||
public static final int RAF_HSDPA = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA);
|
||||
public static final int RAF_HSPA = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSPA);
|
||||
public static final int RAF_HSPAP = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP);
|
||||
public static final int RAF_UMTS = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_UMTS);
|
||||
public static final int RAF_TD_SCDMA = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA);
|
||||
public static final int RAF_EVDO_0 = TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0;
|
||||
public static final int RAF_EVDO_A = TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A;
|
||||
public static final int RAF_EVDO_B = TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B;
|
||||
public static final int RAF_EHRPD = TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD;
|
||||
public static final int RAF_HSUPA = TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA;
|
||||
public static final int RAF_HSDPA = TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA;
|
||||
public static final int RAF_HSPA = TelephonyManager.NETWORK_TYPE_BITMASK_HSPA;
|
||||
public static final int RAF_HSPAP = TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP;
|
||||
public static final int RAF_UMTS = TelephonyManager.NETWORK_TYPE_BITMASK_UMTS;
|
||||
public static final int RAF_TD_SCDMA = TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA;
|
||||
// 4G
|
||||
public static final int RAF_LTE = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE);
|
||||
public static final int RAF_LTE_CA = (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA);
|
||||
public static final int RAF_LTE = TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
|
||||
public static final int RAF_LTE_CA = TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;
|
||||
|
||||
// Grouping of RAFs
|
||||
// 2G
|
||||
@@ -74,9 +77,9 @@ public class RadioAccessFamily implements Parcelable {
|
||||
* Constructor.
|
||||
*
|
||||
* @param phoneId the phone ID
|
||||
* @param radioAccessFamily the phone radio access family defined
|
||||
* in RadioAccessFamily. It's a bit mask value to represent
|
||||
* the support type.
|
||||
* @param radioAccessFamily the phone radio access family bitmask based on
|
||||
* {@link TelephonyManager.NetworkTypeBitMask}. It's a bit mask value to represent the support
|
||||
* type.
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public RadioAccessFamily(int phoneId, int radioAccessFamily) {
|
||||
@@ -100,7 +103,7 @@ public class RadioAccessFamily implements Parcelable {
|
||||
* @return radio access family
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public int getRadioAccessFamily() {
|
||||
public @TelephonyManager.NetworkTypeBitMask int getRadioAccessFamily() {
|
||||
return mRadioAccessFamily;
|
||||
}
|
||||
|
||||
@@ -388,4 +391,76 @@ public class RadioAccessFamily implements Parcelable {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* convert RAF from {@link ServiceState.RilRadioTechnology} bitmask to
|
||||
* {@link TelephonyManager.NetworkTypeBitMask}, the bitmask represented by
|
||||
* {@link TelephonyManager.NetworkType}. Reasons are {@link TelephonyManager.NetworkType} are
|
||||
* public while {@link ServiceState.RilRadioTechnology} are hidden. We
|
||||
* don't want to expose two sets of definition to public.
|
||||
*
|
||||
* @param raf bitmask represented by {@link ServiceState.RilRadioTechnology}
|
||||
* @return {@link TelephonyManager.NetworkTypeBitMask}
|
||||
*/
|
||||
public static int convertToNetworkTypeBitMask(int raf) {
|
||||
int networkTypeRaf = 0;
|
||||
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_GSM)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GSM;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_GPRS)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_GPRS;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EDGE)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EDGE;
|
||||
}
|
||||
// convert both IS95A/IS95B to CDMA as network mode doesn't support CDMA
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IS95A)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_IS95B)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_CDMA;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_1xRTT)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_0)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_0;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_A)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_A;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EVDO_B)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EVDO_B;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_EHRPD)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_EHRPD;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSUPA)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSUPA;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSDPA)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSDPA;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSPA)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPA;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_HSPAP)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_HSPAP;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_UMTS)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_UMTS;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_TD_SCDMA;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE;
|
||||
}
|
||||
if ((raf & (1 << ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA)) != 0) {
|
||||
networkTypeRaf |= TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA;
|
||||
}
|
||||
|
||||
return (networkTypeRaf == 0) ? TelephonyManager.NETWORK_TYPE_UNKNOWN : networkTypeRaf;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8773,4 +8773,168 @@ public class TelephonyManager {
|
||||
|
||||
return isEnabled;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@IntDef(flag = true, prefix = {"NETWORK_TYPE_BITMASK_"},
|
||||
value = {NETWORK_TYPE_BITMASK_UNKNOWN,
|
||||
NETWORK_TYPE_BITMASK_GSM,
|
||||
NETWORK_TYPE_BITMASK_GPRS,
|
||||
NETWORK_TYPE_BITMASK_EDGE,
|
||||
NETWORK_TYPE_BITMASK_CDMA,
|
||||
NETWORK_TYPE_BITMASK_1xRTT,
|
||||
NETWORK_TYPE_BITMASK_EVDO_0,
|
||||
NETWORK_TYPE_BITMASK_EVDO_A,
|
||||
NETWORK_TYPE_BITMASK_EVDO_B,
|
||||
NETWORK_TYPE_BITMASK_EHRPD,
|
||||
NETWORK_TYPE_BITMASK_HSUPA,
|
||||
NETWORK_TYPE_BITMASK_HSDPA,
|
||||
NETWORK_TYPE_BITMASK_HSPA,
|
||||
NETWORK_TYPE_BITMASK_HSPAP,
|
||||
NETWORK_TYPE_BITMASK_UMTS,
|
||||
NETWORK_TYPE_BITMASK_TD_SCDMA,
|
||||
NETWORK_TYPE_BITMASK_LTE,
|
||||
NETWORK_TYPE_BITMASK_LTE_CA,
|
||||
})
|
||||
public @interface NetworkTypeBitMask {}
|
||||
|
||||
// 2G
|
||||
/**
|
||||
* network type bitmask unknown.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_UNKNOWN = (1 << NETWORK_TYPE_UNKNOWN);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech GSM.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_GSM = (1 << NETWORK_TYPE_GSM);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech GPRS.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_GPRS = (1 << NETWORK_TYPE_GPRS);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech EDGE.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_EDGE = (1 << NETWORK_TYPE_EDGE);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech CDMA(IS95A/IS95B).
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_CDMA = (1 << NETWORK_TYPE_CDMA);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech 1xRTT.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_1xRTT = (1 << NETWORK_TYPE_1xRTT);
|
||||
// 3G
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech EVDO 0.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_EVDO_0 = (1 << NETWORK_TYPE_EVDO_0);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech EVDO A.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_EVDO_A = (1 << NETWORK_TYPE_EVDO_A);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech EVDO B.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_EVDO_B = (1 << NETWORK_TYPE_EVDO_B);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech EHRPD.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_EHRPD = (1 << NETWORK_TYPE_EHRPD);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech HSUPA.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_HSUPA = (1 << NETWORK_TYPE_HSUPA);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech HSDPA.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_HSDPA = (1 << NETWORK_TYPE_HSDPA);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech HSPA.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_HSPA = (1 << NETWORK_TYPE_HSPA);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech HSPAP.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_HSPAP = (1 << NETWORK_TYPE_HSPAP);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech UMTS.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_UMTS = (1 << NETWORK_TYPE_UMTS);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech TD_SCDMA.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_TD_SCDMA = (1 << NETWORK_TYPE_TD_SCDMA);
|
||||
// 4G
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech LTE.
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_LTE = (1 << NETWORK_TYPE_LTE);
|
||||
/**
|
||||
* network type bitmask indicating the support of radio tech LTE CA (carrier aggregation).
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int NETWORK_TYPE_BITMASK_LTE_CA = (1 << NETWORK_TYPE_LTE_CA);
|
||||
|
||||
/**
|
||||
* @return Modem supported radio access family bitmask {@link NetworkTypeBitMask}
|
||||
*
|
||||
* <p>Requires permission: {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE} or
|
||||
* that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
public @NetworkTypeBitMask int getSupportedRadioAccessFamily() {
|
||||
try {
|
||||
ITelephony telephony = getITelephony();
|
||||
if (telephony != null) {
|
||||
return telephony.getRadioAccessFamily(getSlotIndex(), getOpPackageName());
|
||||
} else {
|
||||
// This can happen when the ITelephony interface is not up yet.
|
||||
return NETWORK_TYPE_BITMASK_UNKNOWN;
|
||||
}
|
||||
} catch (RemoteException ex) {
|
||||
// This shouldn't happen in the normal case
|
||||
return NETWORK_TYPE_BITMASK_UNKNOWN;
|
||||
} catch (NullPointerException ex) {
|
||||
// This could happen before phone restarts due to crashing
|
||||
return NETWORK_TYPE_BITMASK_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -268,6 +268,27 @@ public final class TelephonyPermissions {
|
||||
enforceCallingOrSelfCarrierPrivilege(subId, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure the caller (or self, if not processing an IPC) has
|
||||
* {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE} or carrier privileges.
|
||||
*
|
||||
* @throws SecurityException if the caller does not have the required permission/privileges
|
||||
*/
|
||||
public static void enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
|
||||
Context context, int subId, String message) {
|
||||
if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
|
||||
== PERMISSION_GRANTED) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (DBG) {
|
||||
Rlog.d(LOG_TAG, "No READ_PRIVILEDED_PHONE_STATE permission, " +
|
||||
"check carrier privilege next.");
|
||||
}
|
||||
|
||||
enforceCallingOrSelfCarrierPrivilege(subId, message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure the caller (or self, if not processing an IPC) has carrier privileges.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user