diff options
| -rw-r--r-- | api/system-current.txt | 24 | ||||
| -rw-r--r-- | telephony/java/android/telephony/RadioAccessFamily.java | 201 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 165 | ||||
| -rw-r--r-- | telephony/java/com/android/internal/telephony/RILConstants.java | 128 |
4 files changed, 314 insertions, 204 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index 954e82c9d54b..8046006872c1 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6320,7 +6320,6 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean getEmergencyCallbackMode(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimDomain(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getIsimIst(); - method @RequiresPermission("android.permission.MODIFY_PHONE_STATE") public int getPreferredNetworkType(int); method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState(); method public int getSimApplicationState(); method public int getSimCardState(); @@ -6377,29 +6376,6 @@ package android.telephony { field public static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL = "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL"; field public static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING = "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING"; field public static final long MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS = 60000L; // 0xea60L - field public static final int NETWORK_MODE_CDMA_EVDO = 4; // 0x4 - field public static final int NETWORK_MODE_CDMA_NO_EVDO = 5; // 0x5 - field public static final int NETWORK_MODE_EVDO_NO_CDMA = 6; // 0x6 - field public static final int NETWORK_MODE_GLOBAL = 7; // 0x7 - field public static final int NETWORK_MODE_GSM_ONLY = 1; // 0x1 - field public static final int NETWORK_MODE_GSM_UMTS = 3; // 0x3 - field public static final int NETWORK_MODE_LTE_CDMA_EVDO = 8; // 0x8 - field public static final int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; // 0xa - field public static final int NETWORK_MODE_LTE_GSM_WCDMA = 9; // 0x9 - field public static final int NETWORK_MODE_LTE_ONLY = 11; // 0xb - field public static final int NETWORK_MODE_LTE_TDSCDMA = 15; // 0xf - field public static final int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; // 0x16 - field public static final int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; // 0x11 - field public static final int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; // 0x14 - field public static final int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; // 0x13 - field public static final int NETWORK_MODE_LTE_WCDMA = 12; // 0xc - field public static final int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; // 0x15 - field public static final int NETWORK_MODE_TDSCDMA_GSM = 16; // 0x10 - field public static final int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; // 0x12 - field public static final int NETWORK_MODE_TDSCDMA_ONLY = 13; // 0xd - 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 diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java index f63b753e075e..0d94c4dd3686 100644 --- a/telephony/java/android/telephony/RadioAccessFamily.java +++ b/telephony/java/android/telephony/RadioAccessFamily.java @@ -57,6 +57,9 @@ public class RadioAccessFamily implements Parcelable { public static final int RAF_LTE = TelephonyManager.NETWORK_TYPE_BITMASK_LTE; public static final int RAF_LTE_CA = TelephonyManager.NETWORK_TYPE_BITMASK_LTE_CA; + // 5G + public static final int RAF_NR = TelephonyManager.NETWORK_TYPE_BITMASK_NR; + // Grouping of RAFs // 2G private static final int GSM = RAF_GSM | RAF_GPRS | RAF_EDGE; @@ -68,6 +71,9 @@ public class RadioAccessFamily implements Parcelable { // 4G private static final int LTE = RAF_LTE | RAF_LTE_CA; + // 5G + private static final int NR = RAF_NR; + /* Phone ID of phone */ private int mPhoneId; @@ -160,84 +166,78 @@ public class RadioAccessFamily implements Parcelable { @UnsupportedAppUsage public static int getRafFromNetworkType(int type) { - int raf; - switch (type) { case RILConstants.NETWORK_MODE_WCDMA_PREF: - raf = GSM | WCDMA; - break; + return GSM | WCDMA; case RILConstants.NETWORK_MODE_GSM_ONLY: - raf = GSM; - break; + return GSM; case RILConstants.NETWORK_MODE_WCDMA_ONLY: - raf = WCDMA; - break; + return WCDMA; case RILConstants.NETWORK_MODE_GSM_UMTS: - raf = GSM | WCDMA; - break; + return GSM | WCDMA; case RILConstants.NETWORK_MODE_CDMA: - raf = CDMA | EVDO; - break; + return CDMA | EVDO; case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO: - raf = LTE | CDMA | EVDO; - break; + return LTE | CDMA | EVDO; case RILConstants.NETWORK_MODE_LTE_GSM_WCDMA: - raf = LTE | GSM | WCDMA; - break; + return LTE | GSM | WCDMA; case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: - raf = LTE | CDMA | EVDO | GSM | WCDMA; - break; + return LTE | CDMA | EVDO | GSM | WCDMA; case RILConstants.NETWORK_MODE_LTE_ONLY: - raf = LTE; - break; + return LTE; case RILConstants.NETWORK_MODE_LTE_WCDMA: - raf = LTE | WCDMA; - break; + return LTE | WCDMA; case RILConstants.NETWORK_MODE_CDMA_NO_EVDO: - raf = CDMA; - break; + return CDMA; case RILConstants.NETWORK_MODE_EVDO_NO_CDMA: - raf = EVDO; - break; + return EVDO; case RILConstants.NETWORK_MODE_GLOBAL: - raf = GSM | WCDMA | CDMA | EVDO; - break; + return GSM | WCDMA | CDMA | EVDO; case RILConstants.NETWORK_MODE_TDSCDMA_ONLY: - raf = RAF_TD_SCDMA; - break; + return RAF_TD_SCDMA; case RILConstants.NETWORK_MODE_TDSCDMA_WCDMA: - raf = RAF_TD_SCDMA | WCDMA; - break; + return RAF_TD_SCDMA | WCDMA; case RILConstants.NETWORK_MODE_LTE_TDSCDMA: - raf = LTE | RAF_TD_SCDMA; - break; + return LTE | RAF_TD_SCDMA; case RILConstants.NETWORK_MODE_TDSCDMA_GSM: - raf = RAF_TD_SCDMA | GSM; - break; + return RAF_TD_SCDMA | GSM; case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: - raf = LTE | RAF_TD_SCDMA | GSM; - break; + return LTE | RAF_TD_SCDMA | GSM; case RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA: - raf = RAF_TD_SCDMA | GSM | WCDMA; - break; + return RAF_TD_SCDMA | GSM | WCDMA; case RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA: - raf = LTE | RAF_TD_SCDMA | WCDMA; - break; + return LTE | RAF_TD_SCDMA | WCDMA; case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: - raf = LTE | RAF_TD_SCDMA | GSM | WCDMA; - break; + return LTE | RAF_TD_SCDMA | GSM | WCDMA; case RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - raf = RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; - break; + return RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; case RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: - raf = LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; - break; + return LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; + case (RILConstants.NETWORK_MODE_NR_ONLY): + return NR; + case (RILConstants.NETWORK_MODE_NR_LTE): + return NR | LTE; + case (RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO): + return NR | LTE | CDMA | EVDO; + case (RILConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA): + return NR | LTE | GSM | WCDMA; + case (RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA): + return NR | LTE | CDMA | EVDO | GSM | WCDMA; + case (RILConstants.NETWORK_MODE_NR_LTE_WCDMA): + return NR | LTE | WCDMA; + case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA): + return NR | LTE | RAF_TD_SCDMA; + case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM): + return NR | LTE | RAF_TD_SCDMA | GSM; + case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA): + return NR | LTE | RAF_TD_SCDMA | WCDMA; + case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA): + return NR | LTE | RAF_TD_SCDMA | GSM | WCDMA; + case (RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA): + return NR | LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; default: - raf = RAF_UNKNOWN; - break; + return RAF_UNKNOWN; } - - return raf; } /** @@ -250,6 +250,7 @@ public class RadioAccessFamily implements Parcelable { raf = ((CDMA & raf) > 0) ? (CDMA | raf) : raf; raf = ((EVDO & raf) > 0) ? (EVDO | raf) : raf; raf = ((LTE & raf) > 0) ? (LTE | raf) : raf; + raf = ((NR & raf) > 0) ? (NR | raf) : raf; return raf; } @@ -274,83 +275,78 @@ public class RadioAccessFamily implements Parcelable { @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public static int getNetworkTypeFromRaf(int raf) { - int type; - raf = getAdjustedRaf(raf); switch (raf) { case (GSM | WCDMA): - type = RILConstants.NETWORK_MODE_WCDMA_PREF; - break; + return RILConstants.NETWORK_MODE_WCDMA_PREF; case GSM: - type = RILConstants.NETWORK_MODE_GSM_ONLY; - break; + return RILConstants.NETWORK_MODE_GSM_ONLY; case WCDMA: - type = RILConstants.NETWORK_MODE_WCDMA_ONLY; - break; + return RILConstants.NETWORK_MODE_WCDMA_ONLY; case (CDMA | EVDO): - type = RILConstants.NETWORK_MODE_CDMA; - break; + return RILConstants.NETWORK_MODE_CDMA; case (LTE | CDMA | EVDO): - type = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO; - break; + return RILConstants.NETWORK_MODE_LTE_CDMA_EVDO; case (LTE | GSM | WCDMA): - type = RILConstants.NETWORK_MODE_LTE_GSM_WCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_GSM_WCDMA; case (LTE | CDMA | EVDO | GSM | WCDMA): - type = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA; case LTE: - type = RILConstants.NETWORK_MODE_LTE_ONLY; - break; + return RILConstants.NETWORK_MODE_LTE_ONLY; case (LTE | WCDMA): - type = RILConstants.NETWORK_MODE_LTE_WCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_WCDMA; case CDMA: - type = RILConstants.NETWORK_MODE_CDMA_NO_EVDO; - break; + return RILConstants.NETWORK_MODE_CDMA_NO_EVDO; case EVDO: - type = RILConstants.NETWORK_MODE_EVDO_NO_CDMA; - break; + return RILConstants.NETWORK_MODE_EVDO_NO_CDMA; case (GSM | WCDMA | CDMA | EVDO): - type = RILConstants.NETWORK_MODE_GLOBAL; - break; + return RILConstants.NETWORK_MODE_GLOBAL; case RAF_TD_SCDMA: - type = RILConstants.NETWORK_MODE_TDSCDMA_ONLY; - break; + return RILConstants.NETWORK_MODE_TDSCDMA_ONLY; case (RAF_TD_SCDMA | WCDMA): - type = RILConstants.NETWORK_MODE_TDSCDMA_WCDMA; - break; + return RILConstants.NETWORK_MODE_TDSCDMA_WCDMA; case (LTE | RAF_TD_SCDMA): - type = RILConstants.NETWORK_MODE_LTE_TDSCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_TDSCDMA; case (RAF_TD_SCDMA | GSM): - type = RILConstants.NETWORK_MODE_TDSCDMA_GSM; - break; + return RILConstants.NETWORK_MODE_TDSCDMA_GSM; case (LTE | RAF_TD_SCDMA | GSM): - type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM; - break; + return RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM; case (RAF_TD_SCDMA | GSM | WCDMA): - type = RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA; - break; + return RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA; case (LTE | RAF_TD_SCDMA | WCDMA): - type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA; case (LTE | RAF_TD_SCDMA | GSM | WCDMA): - type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA; case (RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA): - type = RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; - break; + return RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; case (LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA): - type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; - break; + return RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; + case (NR): + return RILConstants.NETWORK_MODE_NR_ONLY; + case (NR | LTE): + return RILConstants.NETWORK_MODE_NR_LTE; + case (NR | LTE | CDMA | EVDO): + return RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO; + case (NR | LTE | GSM | WCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; + case (NR | LTE | CDMA | EVDO | GSM | WCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA; + case (NR | LTE | WCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_WCDMA; + case (NR | LTE | RAF_TD_SCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA; + case (NR | LTE | RAF_TD_SCDMA | GSM): + return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM; + case (NR | LTE | RAF_TD_SCDMA | WCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA; + case (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA; + case (NR | LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA): + return RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; default: - type = RILConstants.PREFERRED_NETWORK_MODE ; - break; + return RILConstants.PREFERRED_NETWORK_MODE; } - - return type; } public static int singleRafTypeFromString(String rafString) { @@ -377,6 +373,7 @@ public class RadioAccessFamily implements Parcelable { case "EVDO": return EVDO; case "WCDMA": return WCDMA; case "LTE_CA": return RAF_LTE_CA; + case "NR": return RAF_NR; default: return RAF_UNKNOWN; } } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 24d790a663c9..d5b543bdcd43 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -6236,197 +6236,258 @@ public class TelephonyManager { NETWORK_MODE_LTE_TDSCDMA_WCDMA, NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA, NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA, - NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA + NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA, + NETWORK_MODE_NR_ONLY, + NETWORK_MODE_NR_LTE, + NETWORK_MODE_NR_LTE_CDMA_EVDO, + NETWORK_MODE_NR_LTE_GSM_WCDMA, + NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA, + NETWORK_MODE_NR_LTE_WCDMA, + NETWORK_MODE_NR_LTE_TDSCDMA, + NETWORK_MODE_NR_LTE_TDSCDMA_GSM, + NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA, + NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA, + NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA }) @Retention(RetentionPolicy.SOURCE) public @interface PrefNetworkMode{} /** - * network mode is GSM/WCDMA (WCDMA preferred). + * Preferred network mode is GSM/WCDMA (WCDMA preferred). * @hide */ - @SystemApi public static final int NETWORK_MODE_WCDMA_PREF = RILConstants.NETWORK_MODE_WCDMA_PREF; /** - * network mode is GSM only. + * Preferred network mode is GSM only. * @hide */ - @SystemApi public static final int NETWORK_MODE_GSM_ONLY = RILConstants.NETWORK_MODE_GSM_ONLY; /** - * network mode is WCDMA only. + * Preferred network mode is WCDMA only. * @hide */ - @SystemApi public static final int NETWORK_MODE_WCDMA_ONLY = RILConstants.NETWORK_MODE_WCDMA_ONLY; /** - * network mode is GSM/WCDMA (auto mode, according to PRL). + * Preferred network mode is GSM/WCDMA (auto mode, according to PRL). * @hide */ - @SystemApi public static final int NETWORK_MODE_GSM_UMTS = RILConstants.NETWORK_MODE_GSM_UMTS; /** - * network mode is CDMA and EvDo (auto mode, according to PRL). + * Preferred network mode is CDMA and EvDo (auto mode, according to PRL). * @hide */ - @SystemApi public static final int NETWORK_MODE_CDMA_EVDO = RILConstants.NETWORK_MODE_CDMA; /** - * network mode is CDMA only. + * Preferred network mode is CDMA only. * @hide */ - @SystemApi public static final int NETWORK_MODE_CDMA_NO_EVDO = RILConstants.NETWORK_MODE_CDMA_NO_EVDO; /** - * network mode is EvDo only. + * Preferred network mode is EvDo only. * @hide */ - @SystemApi public static final int NETWORK_MODE_EVDO_NO_CDMA = RILConstants.NETWORK_MODE_EVDO_NO_CDMA; /** - * network mode is GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL). + * Preferred network mode is GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL). * @hide */ - @SystemApi public static final int NETWORK_MODE_GLOBAL = RILConstants.NETWORK_MODE_GLOBAL; /** - * network mode is LTE, CDMA and EvDo. + * Preferred network mode is LTE, CDMA and EvDo. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_CDMA_EVDO = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO; /** - * preferred network mode is LTE, GSM/WCDMA. + * Preferred network mode is LTE, GSM/WCDMA. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_GSM_WCDMA = RILConstants.NETWORK_MODE_LTE_GSM_WCDMA; /** - * network mode is LTE, CDMA, EvDo, GSM/WCDMA. + * Preferred network mode is LTE, CDMA, EvDo, GSM/WCDMA. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA; /** - * network mode is LTE Only. + * Preferred network mode is LTE Only. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_ONLY = RILConstants.NETWORK_MODE_LTE_ONLY; /** - * network mode is LTE/WCDMA. + * Preferred network mode is LTE/WCDMA. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_WCDMA = RILConstants.NETWORK_MODE_LTE_WCDMA; /** - * network mode is TD-SCDMA only. + * Preferred network mode is TD-SCDMA only. * @hide */ - @SystemApi public static final int NETWORK_MODE_TDSCDMA_ONLY = RILConstants.NETWORK_MODE_TDSCDMA_ONLY; /** - * network mode is TD-SCDMA and WCDMA. + * Preferred network mode is TD-SCDMA and WCDMA. * @hide */ - @SystemApi public static final int NETWORK_MODE_TDSCDMA_WCDMA = RILConstants.NETWORK_MODE_TDSCDMA_WCDMA; /** - * network mode is TD-SCDMA and LTE. + * Preferred network mode is TD-SCDMA and LTE. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_TDSCDMA = RILConstants.NETWORK_MODE_LTE_TDSCDMA; /** - * network mode is TD-SCDMA and GSM. + * Preferred network mode is TD-SCDMA and GSM. * @hide */ - @SystemApi public static final int NETWORK_MODE_TDSCDMA_GSM = RILConstants.NETWORK_MODE_TDSCDMA_GSM; /** - * network mode is TD-SCDMA,GSM and LTE. + * Preferred network mode is TD-SCDMA,GSM and LTE. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_TDSCDMA_GSM = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM; /** - * network mode is TD-SCDMA, GSM/WCDMA. + * Preferred network mode is TD-SCDMA, GSM/WCDMA. * @hide */ - @SystemApi public static final int NETWORK_MODE_TDSCDMA_GSM_WCDMA = RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA; /** - * network mode is TD-SCDMA, WCDMA and LTE. + * Preferred network mode is TD-SCDMA, WCDMA and LTE. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_TDSCDMA_WCDMA = RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA; /** - * network mode is TD-SCDMA, GSM/WCDMA and LTE. + * Preferred network mode is TD-SCDMA, GSM/WCDMA and LTE. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA; /** - * network mode is TD-SCDMA,EvDo,CDMA,GSM/WCDMA. + * Preferred network mode is TD-SCDMA,EvDo,CDMA,GSM/WCDMA. * @hide */ - @SystemApi public static final int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; - /** - * network mode is TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo. + * Preferred network mode is TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo. * @hide */ - @SystemApi public static final int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; /** + * Preferred network mode is NR 5G only. + * @hide + */ + public static final int NETWORK_MODE_NR_ONLY = RILConstants.NETWORK_MODE_NR_ONLY; + + /** + * Preferred network mode is NR 5G, LTE. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE = RILConstants.NETWORK_MODE_NR_LTE; + + /** + * Preferred network mode is NR 5G, LTE, CDMA and EvDo. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_CDMA_EVDO = + RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO; + + /** + * Preferred network mode is NR 5G, LTE, GSM and WCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_GSM_WCDMA = + RILConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA; + + /** + * Preferred network mode is NR 5G, LTE, CDMA, EvDo, GSM and WCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = + RILConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA; + + /** + * Preferred network mode is NR 5G, LTE and WCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_WCDMA = RILConstants.NETWORK_MODE_NR_LTE_WCDMA; + + /** + * Preferred network mode is NR 5G, LTE and TDSCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_TDSCDMA = RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA; + + /** + * Preferred network mode is NR 5G, LTE, TD-SCDMA and GSM. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_TDSCDMA_GSM = + RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM; + + /** + * Preferred network mode is NR 5G, LTE, TD-SCDMA, WCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = + RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA; + + /** + * Preferred network mode is NR 5G, LTE, TD-SCDMA, GSM and WCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = + RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA; + + /** + * Preferred network mode is NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA. + * @hide + */ + public static final int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = + RILConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; + + /** * Get the preferred network type. * Used for device configuration by some CDMA operators. * * <p>Requires Permission: - * {@link android.Manifest.permission#MODIFY_PHONE_STATE MODIFY_PHONE_STATE} or that the calling + * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE} * app has carrier privileges (see {@link #hasCarrierPrivileges}). * * @return the preferred network type. * @hide */ - @RequiresPermission((android.Manifest.permission.MODIFY_PHONE_STATE)) - @SystemApi + @RequiresPermission((android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)) + @UnsupportedAppUsage public @PrefNetworkMode int getPreferredNetworkType(int subId) { try { ITelephony telephony = getITelephony(); - if (telephony != null) + if (telephony != null) { return telephony.getPreferredNetworkType(subId); + } } catch (RemoteException ex) { Rlog.e(TAG, "getPreferredNetworkType RemoteException", ex); } catch (NullPointerException ex) { diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index 08e30dedca74..77b797956cf5 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -128,32 +128,108 @@ public interface RILConstants { int OEM_ERROR_25 = 525; /* NETWORK_MODE_* See ril.h RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE */ - int NETWORK_MODE_WCDMA_PREF = 0; /* GSM/WCDMA (WCDMA preferred) */ - int NETWORK_MODE_GSM_ONLY = 1; /* GSM only */ - int NETWORK_MODE_WCDMA_ONLY = 2; /* WCDMA only */ - int NETWORK_MODE_GSM_UMTS = 3; /* GSM/WCDMA (auto mode, according to PRL) - AVAILABLE Application Settings menu*/ - int NETWORK_MODE_CDMA = 4; /* CDMA and EvDo (auto mode, according to PRL) - AVAILABLE Application Settings menu*/ - int NETWORK_MODE_CDMA_NO_EVDO = 5; /* CDMA only */ - int NETWORK_MODE_EVDO_NO_CDMA = 6; /* EvDo only */ - int NETWORK_MODE_GLOBAL = 7; /* GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL) - AVAILABLE Application Settings menu*/ - int NETWORK_MODE_LTE_CDMA_EVDO = 8; /* LTE, CDMA and EvDo */ - int NETWORK_MODE_LTE_GSM_WCDMA = 9; /* LTE, GSM/WCDMA */ - int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; /* LTE, CDMA, EvDo, GSM/WCDMA */ - int NETWORK_MODE_LTE_ONLY = 11; /* LTE Only mode. */ - int NETWORK_MODE_LTE_WCDMA = 12; /* LTE/WCDMA */ - int NETWORK_MODE_TDSCDMA_ONLY = 13; /* TD-SCDMA only */ - int NETWORK_MODE_TDSCDMA_WCDMA = 14; /* TD-SCDMA and WCDMA */ - int NETWORK_MODE_LTE_TDSCDMA = 15; /* TD-SCDMA and LTE */ - int NETWORK_MODE_TDSCDMA_GSM = 16; /* TD-SCDMA and GSM */ - int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; /* TD-SCDMA,GSM and LTE */ - int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; /* TD-SCDMA, GSM/WCDMA */ - int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; /* TD-SCDMA, WCDMA and LTE */ - int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; /* TD-SCDMA, GSM/WCDMA and LTE */ - int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; /*TD-SCDMA,EvDo,CDMA,GSM/WCDMA*/ - int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; /* TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo */ + /** GSM, WCDMA (WCDMA preferred) */ + int NETWORK_MODE_WCDMA_PREF = 0; + + /** GSM only */ + int NETWORK_MODE_GSM_ONLY = 1; + + /** WCDMA only */ + int NETWORK_MODE_WCDMA_ONLY = 2; + + /** GSM, WCDMA (auto mode, according to PRL) */ + int NETWORK_MODE_GSM_UMTS = 3; + + /** CDMA and EvDo (auto mode, according to PRL) */ + int NETWORK_MODE_CDMA = 4; + + /** CDMA only */ + int NETWORK_MODE_CDMA_NO_EVDO = 5; + + /** EvDo only */ + int NETWORK_MODE_EVDO_NO_CDMA = 6; + + /** GSM, WCDMA, CDMA, and EvDo (auto mode, according to PRL) */ + int NETWORK_MODE_GLOBAL = 7; + + /** LTE, CDMA and EvDo */ + int NETWORK_MODE_LTE_CDMA_EVDO = 8; + + /** LTE, GSM and WCDMA */ + int NETWORK_MODE_LTE_GSM_WCDMA = 9; + + /** LTE, CDMA, EvDo, GSM, and WCDMA */ + int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; + + /** LTE only mode. */ + int NETWORK_MODE_LTE_ONLY = 11; + + /** LTE and WCDMA */ + int NETWORK_MODE_LTE_WCDMA = 12; + + /** TD-SCDMA only */ + int NETWORK_MODE_TDSCDMA_ONLY = 13; + + /** TD-SCDMA and WCDMA */ + int NETWORK_MODE_TDSCDMA_WCDMA = 14; + + /** LTE and TD-SCDMA*/ + int NETWORK_MODE_LTE_TDSCDMA = 15; + + /** TD-SCDMA and GSM */ + int NETWORK_MODE_TDSCDMA_GSM = 16; + + /** TD-SCDMA, GSM and LTE */ + int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; + + /** TD-SCDMA, GSM and WCDMA */ + int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; + + /** LTE, TD-SCDMA and WCDMA */ + int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; + + /** LTE, TD-SCDMA, GSM, and WCDMA */ + int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; + + /** TD-SCDMA, CDMA, EVDO, GSM and WCDMA */ + int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; + + /** LTE, TDCSDMA, CDMA, EVDO, GSM and WCDMA */ + int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; + + /** NR 5G only mode */ + int NETWORK_MODE_NR_ONLY = 23; + + /** NR 5G, LTE */ + int NETWORK_MODE_NR_LTE = 24; + + /** NR 5G, LTE, CDMA and EvDo */ + int NETWORK_MODE_NR_LTE_CDMA_EVDO = 25; + + /** NR 5G, LTE, GSM and WCDMA */ + int NETWORK_MODE_NR_LTE_GSM_WCDMA = 26; + + /** NR 5G, LTE, CDMA, EvDo, GSM and WCDMA */ + int NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = 27; + + /** NR 5G, LTE and WCDMA */ + int NETWORK_MODE_NR_LTE_WCDMA = 28; + + /** NR 5G, LTE and TDSCDMA */ + int NETWORK_MODE_NR_LTE_TDSCDMA = 29; + + /** NR 5G, LTE, TD-SCDMA and GSM */ + int NETWORK_MODE_NR_LTE_TDSCDMA_GSM = 30; + + /** NR 5G, LTE, TD-SCDMA, WCDMA */ + int NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA = 31; + + /** NR 5G, LTE, TD-SCDMA, GSM and WCDMA */ + int NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = 32; + + /** NR 5G, LTE, TD-SCDMA, CDMA, EVDO, GSM and WCDMA */ + int NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 33; + int PREFERRED_NETWORK_MODE = Integer.parseInt(TelephonyManager.getTelephonyProperty(0, "ro.telephony.default_network", Integer.toString(NETWORK_MODE_WCDMA_PREF))); |