From a143659d2908dad851fd94512c0d245b05677706 Mon Sep 17 00:00:00 2001 From: chen xu Date: Thu, 31 Jan 2019 00:44:52 -0800 Subject: [PATCH] Add NR to preferred network type combination This add NR 5G to preferred network type and move preferredNetworkMode from SystemApi to hidden api as we are not going to support preferredNetworMode enum in the future. Bug: 111453000 Test: build Change-Id: I08a8f7bf44a62ef109583b82b22f65fd6f89c71d (cherry picked from commit 8bcdc4cf66e9d654fa31d7c62654ff81ee04cdc6) Merged-in: I08a8f7bf44a62ef109583b82b22f65fd6f89c71d --- api/system-current.txt | 24 --- .../java/android/telephony/RadioAccessFamily.java | 201 ++++++++++----------- .../java/android/telephony/TelephonyManager.java | 165 +++++++++++------ .../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 e17459bf4852..05e78ee1e12f 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6315,7 +6315,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(); @@ -6372,29 +6371,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. * *

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))); -- 2.11.0