1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.telephony; 18 19 import android.annotation.IntDef; 20 import android.annotation.NonNull; 21 import android.annotation.SystemApi; 22 import android.hardware.radio.V1_5.AccessNetwork; 23 24 import java.lang.annotation.Retention; 25 import java.lang.annotation.RetentionPolicy; 26 import java.util.Locale; 27 28 /** 29 * Contains access network related constants. 30 */ 31 public final class AccessNetworkConstants { 32 33 private static final String TAG = AccessNetworkConstants.class.getSimpleName(); 34 35 /** 36 * Wireless transportation type 37 * 38 * @hide */ 39 @Retention(RetentionPolicy.SOURCE) 40 @IntDef(prefix = {"TRANSPORT_TYPE_"}, 41 value = { 42 TRANSPORT_TYPE_INVALID, 43 TRANSPORT_TYPE_WWAN, 44 TRANSPORT_TYPE_WLAN}) 45 public @interface TransportType {} 46 47 /** 48 * Invalid transport type 49 * @hide 50 */ 51 @SystemApi 52 public static final int TRANSPORT_TYPE_INVALID = -1; 53 54 /** 55 * Transport type for Wireless Wide Area Networks (i.e. Cellular) 56 */ 57 public static final int TRANSPORT_TYPE_WWAN = 1; 58 59 /** 60 * Transport type for Wireless Local Area Networks (i.e. Wifi) 61 */ 62 public static final int TRANSPORT_TYPE_WLAN = 2; 63 64 /** @hide */ transportTypeToString(@ransportType int transportType)65 public static String transportTypeToString(@TransportType int transportType) { 66 switch (transportType) { 67 case TRANSPORT_TYPE_WWAN: return "WWAN"; 68 case TRANSPORT_TYPE_WLAN: return "WLAN"; 69 case TRANSPORT_TYPE_INVALID: return "INVALID"; 70 default: return Integer.toString(transportType); 71 } 72 } 73 74 /** 75 * Access network type 76 * @hide 77 */ 78 @Retention(RetentionPolicy.SOURCE) 79 @IntDef(prefix = {"RADIO_ACCESS_NETWORK_TYPE_"}, 80 value = { 81 AccessNetworkType.UNKNOWN, 82 AccessNetworkType.GERAN, 83 AccessNetworkType.UTRAN, 84 AccessNetworkType.EUTRAN, 85 AccessNetworkType.CDMA2000, 86 AccessNetworkType.IWLAN, 87 AccessNetworkType.NGRAN}) 88 public @interface RadioAccessNetworkType {} 89 90 public static final class AccessNetworkType { 91 public static final int UNKNOWN = AccessNetwork.UNKNOWN; 92 public static final int GERAN = AccessNetwork.GERAN; 93 public static final int UTRAN = AccessNetwork.UTRAN; 94 public static final int EUTRAN = AccessNetwork.EUTRAN; 95 public static final int CDMA2000 = AccessNetwork.CDMA2000; 96 public static final int IWLAN = AccessNetwork.IWLAN; 97 public static final int NGRAN = AccessNetwork.NGRAN; 98 99 /** @hide */ AccessNetworkType()100 private AccessNetworkType() {} 101 102 /** @hide */ toString(int type)103 public static String toString(int type) { 104 switch (type) { 105 case UNKNOWN: return "UNKNOWN"; 106 case GERAN: return "GERAN"; 107 case UTRAN: return "UTRAN"; 108 case EUTRAN: return "EUTRAN"; 109 case CDMA2000: return "CDMA2000"; 110 case IWLAN: return "IWLAN"; 111 case NGRAN: return "NGRAN"; 112 default: return Integer.toString(type); 113 } 114 } 115 116 /** @hide */ fromString(@onNull String str)117 public static @RadioAccessNetworkType int fromString(@NonNull String str) { 118 switch (str.toUpperCase(Locale.ROOT)) { 119 case "UNKNOWN": return UNKNOWN; 120 case "GERAN": return GERAN; 121 case "UTRAN": return UTRAN; 122 case "EUTRAN": return EUTRAN; 123 case "CDMA2000": return CDMA2000; 124 case "IWLAN": return IWLAN; 125 case "NGRAN": return NGRAN; 126 default: 127 throw new IllegalArgumentException("Invalid access network type " + str); 128 } 129 } 130 } 131 132 /** 133 * Frequency bands for GERAN. 134 * http://www.etsi.org/deliver/etsi_ts/145000_145099/145005/14.00.00_60/ts_145005v140000p.pdf 135 */ 136 public static final class GeranBand { 137 public static final int BAND_T380 = android.hardware.radio.V1_1.GeranBands.BAND_T380; 138 public static final int BAND_T410 = android.hardware.radio.V1_1.GeranBands.BAND_T410; 139 public static final int BAND_450 = android.hardware.radio.V1_1.GeranBands.BAND_450; 140 public static final int BAND_480 = android.hardware.radio.V1_1.GeranBands.BAND_480; 141 public static final int BAND_710 = android.hardware.radio.V1_1.GeranBands.BAND_710; 142 public static final int BAND_750 = android.hardware.radio.V1_1.GeranBands.BAND_750; 143 public static final int BAND_T810 = android.hardware.radio.V1_1.GeranBands.BAND_T810; 144 public static final int BAND_850 = android.hardware.radio.V1_1.GeranBands.BAND_850; 145 public static final int BAND_P900 = android.hardware.radio.V1_1.GeranBands.BAND_P900; 146 public static final int BAND_E900 = android.hardware.radio.V1_1.GeranBands.BAND_E900; 147 public static final int BAND_R900 = android.hardware.radio.V1_1.GeranBands.BAND_R900; 148 public static final int BAND_DCS1800 = android.hardware.radio.V1_1.GeranBands.BAND_DCS1800; 149 public static final int BAND_PCS1900 = android.hardware.radio.V1_1.GeranBands.BAND_PCS1900; 150 public static final int BAND_ER900 = android.hardware.radio.V1_1.GeranBands.BAND_ER900; 151 152 /** 153 * GeranBand 154 * 155 * @hide */ 156 @Retention(RetentionPolicy.SOURCE) 157 @IntDef(prefix = {"BAND_"}, 158 value = {BAND_T380, 159 BAND_T410, 160 BAND_450, 161 BAND_480, 162 BAND_710, 163 BAND_750, 164 BAND_T810, 165 BAND_850, 166 BAND_P900, 167 BAND_E900, 168 BAND_R900, 169 BAND_DCS1800, 170 BAND_PCS1900, 171 BAND_ER900}) 172 173 public @interface GeranBands {} 174 175 /** @hide */ GeranBand()176 private GeranBand() {} 177 } 178 179 /** 180 * 3GPP TS 45.005 Table 2-1 Dynamically mapped ARFCN. 181 * 3GPP TS 45.005 Table 2-2 Fixed designation of ARFCN. 182 * @hide 183 */ 184 enum GeranBandArfcnFrequency { 185 186 // Dynamically mapped ARFCN 187 // GERAN_ARFCN_FREQUENCY_BAND_T380(GeranBand.BAND_T380, 380.2, 0), 188 // GERAN_ARFCN_FREQUENCY_BAND_T410(GeranBand.BAND_T410, 410.2, 0), 189 // GERAN_ARFCN_FREQUENCY_BAND_710(GeranBand.BAND_710, 698, 0), 190 // GERAN_ARFCN_FREQUENCY_BAND_750(GeranBand.BAND_750, 747, 438, 30), 191 // GERAN_ARFCN_FREQUENCY_BAND_T810(GeranBand.BAND_T810, 806, 350), 192 // Fixed designation of ARFCN 193 GERAN_ARFCN_FREQUENCY_BAND_450(GeranBand.BAND_450, 450600, 259, 259, 293, 10), 194 GERAN_ARFCN_FREQUENCY_BAND_480(GeranBand.BAND_480, 479000, 306, 306, 340, 10), 195 GERAN_ARFCN_FREQUENCY_BAND_850(GeranBand.BAND_850, 824200, 128, 128, 251, 45), 196 GERAN_ARFCN_FREQUENCY_BAND_DCS1800(GeranBand.BAND_DCS1800, 1710200, 512, 512, 885, 95), 197 GERAN_ARFCN_FREQUENCY_BAND_PCS1900(GeranBand.BAND_PCS1900, 1850200, 512, 512, 810, 80), 198 GERAN_ARFCN_FREQUENCY_BAND_E900_1(GeranBand.BAND_E900, 890000, 0, 0, 124, 45), 199 GERAN_ARFCN_FREQUENCY_BAND_E900_2(GeranBand.BAND_E900, 890000, 1024, 975, 1023, 45), 200 GERAN_ARFCN_FREQUENCY_BAND_R900_1(GeranBand.BAND_R900, 890000, 0, 0, 124, 45), 201 GERAN_ARFCN_FREQUENCY_BAND_R900_2(GeranBand.BAND_R900, 890000, 1024, 955, 1023, 45), 202 GERAN_ARFCN_FREQUENCY_BAND_P900(GeranBand.BAND_P900, 890000, 0, 1, 124, 45), 203 GERAN_ARFCN_FREQUENCY_BAND_ER900_1(GeranBand.BAND_ER900, 890000, 0, 0, 124, 45), 204 GERAN_ARFCN_FREQUENCY_BAND_ER900_2(GeranBand.BAND_ER900, 890000, 1024, 940, 1023, 1024); 205 GeranBandArfcnFrequency(int band, int uplinkFrequencyFirstKhz, int arfcnOffset, int arfcnRangeFirst, int arfcnRangeLast, int downlinkOffset)206 GeranBandArfcnFrequency(int band, int uplinkFrequencyFirstKhz, int arfcnOffset, 207 int arfcnRangeFirst, int arfcnRangeLast, int downlinkOffset) { 208 this.band = band; 209 this.uplinkFrequencyFirst = uplinkFrequencyFirstKhz; 210 this.arfcnOffset = arfcnOffset; 211 this.arfcnRangeFirst = arfcnRangeFirst; 212 this.arfcnRangeLast = arfcnRangeLast; 213 this.downlinkOffset = downlinkOffset; 214 } 215 216 int band; 217 int uplinkFrequencyFirst; 218 int arfcnOffset; 219 int arfcnRangeFirst; 220 int arfcnRangeLast; 221 int downlinkOffset; 222 } 223 224 /** 225 * Frequency bands for UTRAN. 226 * http://www.etsi.org/deliver/etsi_ts/125100_125199/125104/13.03.00_60/ts_125104v130p.pdf 227 */ 228 public static final class UtranBand { 229 public static final int BAND_1 = android.hardware.radio.V1_5.UtranBands.BAND_1; 230 public static final int BAND_2 = android.hardware.radio.V1_5.UtranBands.BAND_2; 231 public static final int BAND_3 = android.hardware.radio.V1_5.UtranBands.BAND_3; 232 public static final int BAND_4 = android.hardware.radio.V1_5.UtranBands.BAND_4; 233 public static final int BAND_5 = android.hardware.radio.V1_5.UtranBands.BAND_5; 234 public static final int BAND_6 = android.hardware.radio.V1_5.UtranBands.BAND_6; 235 public static final int BAND_7 = android.hardware.radio.V1_5.UtranBands.BAND_7; 236 public static final int BAND_8 = android.hardware.radio.V1_5.UtranBands.BAND_8; 237 public static final int BAND_9 = android.hardware.radio.V1_5.UtranBands.BAND_9; 238 public static final int BAND_10 = android.hardware.radio.V1_5.UtranBands.BAND_10; 239 public static final int BAND_11 = android.hardware.radio.V1_5.UtranBands.BAND_11; 240 public static final int BAND_12 = android.hardware.radio.V1_5.UtranBands.BAND_12; 241 public static final int BAND_13 = android.hardware.radio.V1_5.UtranBands.BAND_13; 242 public static final int BAND_14 = android.hardware.radio.V1_5.UtranBands.BAND_14; 243 // band 15, 16, 17, 18 are reserved 244 public static final int BAND_19 = android.hardware.radio.V1_5.UtranBands.BAND_19; 245 public static final int BAND_20 = android.hardware.radio.V1_5.UtranBands.BAND_20; 246 public static final int BAND_21 = android.hardware.radio.V1_5.UtranBands.BAND_21; 247 public static final int BAND_22 = android.hardware.radio.V1_5.UtranBands.BAND_22; 248 // band 23, 24 are reserved 249 public static final int BAND_25 = android.hardware.radio.V1_5.UtranBands.BAND_25; 250 public static final int BAND_26 = android.hardware.radio.V1_5.UtranBands.BAND_26; 251 252 // Frequency bands for TD-SCDMA. Defined in 3GPP TS 25.102, Table 5.2. 253 254 /** 255 * Band A 256 * 1900 - 1920 MHz: Uplink and downlink transmission 257 * 2010 - 2025 MHz: Uplink and downlink transmission 258 */ 259 public static final int BAND_A = android.hardware.radio.V1_5.UtranBands.BAND_A; 260 261 /** 262 * Band B 263 * 1850 - 1910 MHz: Uplink and downlink transmission 264 * 1930 - 1990 MHz: Uplink and downlink transmission 265 */ 266 public static final int BAND_B = android.hardware.radio.V1_5.UtranBands.BAND_B; 267 268 /** 269 * Band C 270 * 1910 - 1930 MHz: Uplink and downlink transmission 271 */ 272 public static final int BAND_C = android.hardware.radio.V1_5.UtranBands.BAND_C; 273 274 /** 275 * Band D 276 * 2570 - 2620 MHz: Uplink and downlink transmission 277 */ 278 public static final int BAND_D = android.hardware.radio.V1_5.UtranBands.BAND_D; 279 280 /** 281 * Band E 282 * 2300—2400 MHz: Uplink and downlink transmission 283 */ 284 public static final int BAND_E = android.hardware.radio.V1_5.UtranBands.BAND_E; 285 286 /** 287 * Band F 288 * 1880 - 1920 MHz: Uplink and downlink transmission 289 */ 290 public static final int BAND_F = android.hardware.radio.V1_5.UtranBands.BAND_F; 291 292 /** 293 * UtranBand 294 * 295 * @hide */ 296 @Retention(RetentionPolicy.SOURCE) 297 @IntDef(prefix = {"BAND_"}, 298 value = {BAND_1, 299 BAND_2, 300 BAND_3, 301 BAND_4, 302 BAND_5, 303 BAND_6, 304 BAND_7, 305 BAND_8, 306 BAND_9, 307 BAND_10, 308 BAND_11, 309 BAND_12, 310 BAND_13, 311 BAND_14, 312 BAND_19, 313 BAND_20, 314 BAND_21, 315 BAND_22, 316 BAND_25, 317 BAND_26, 318 BAND_A, 319 BAND_B, 320 BAND_C, 321 BAND_D, 322 BAND_E, 323 BAND_F}) 324 325 public @interface UtranBands {} 326 327 /** @hide */ UtranBand()328 private UtranBand() {} 329 } 330 331 /** 332 * 3GPP TS 25.101, Table 5.1 UARFCN definition (general) 333 * 3GPP TS 25.102, Table 5.2 UTRA Absolute Radio Frequency Channel Number 1.28 Mcps TDD Option. 334 * 335 * @hide 336 */ 337 enum UtranBandArfcnFrequency { 338 339 UTRAN_ARFCN_FREQUENCY_BAND_1(UtranBand.BAND_1, 0, 10562, 10838, 0, 9612, 9888), 340 UTRAN_ARFCN_FREQUENCY_BAND_2(UtranBand.BAND_2, 0, 9662, 9938, 0, 9262, 9538), 341 UTRAN_ARFCN_FREQUENCY_BAND_3(UtranBand.BAND_3, 1575000, 1162, 1513, 1525000, 937, 1288), 342 UTRAN_ARFCN_FREQUENCY_BAND_4(UtranBand.BAND_4, 1805000, 1537, 1738, 1450000, 1312, 1513), 343 UTRAN_ARFCN_FREQUENCY_BAND_5(UtranBand.BAND_5, 0, 4357, 4458, 0, 4132, 4233), 344 UTRAN_ARFCN_FREQUENCY_BAND_6(UtranBand.BAND_6, 0, 4387, 4413, 0, 4162, 4188), 345 UTRAN_ARFCN_FREQUENCY_BAND_7(UtranBand.BAND_7, 2175000, 2237, 2563, 2100000, 2012, 2338), 346 UTRAN_ARFCN_FREQUENCY_BAND_8(UtranBand.BAND_8, 340000, 2937, 3088, 340000, 2712, 2863), 347 UTRAN_ARFCN_FREQUENCY_BAND_9(UtranBand.BAND_9, 0, 9327, 9837, 0, 8762, 8912), 348 UTRAN_ARFCN_FREQUENCY_BAND_10(UtranBand.BAND_10, 1490000, 3112, 3388, 1135000, 2887, 3163), 349 UTRAN_ARFCN_FREQUENCY_BAND_11(UtranBand.BAND_11, 736000, 3712, 3787, 733000, 3487, 3562), 350 UTRAN_ARFCN_FREQUENCY_BAND_12(UtranBand.BAND_12, -37000, 3842, 3903, -22000, 3617, 3678), 351 UTRAN_ARFCN_FREQUENCY_BAND_13(UtranBand.BAND_13, -55000, 4017, 4043, 21000, 3792, 3818), 352 UTRAN_ARFCN_FREQUENCY_BAND_14(UtranBand.BAND_14, -63000, 4117, 4143, 12000, 3892, 3918), 353 UTRAN_ARFCN_FREQUENCY_BAND_19(UtranBand.BAND_19, 735000, 712, 763, 770000, 312, 363), 354 UTRAN_ARFCN_FREQUENCY_BAND_20(UtranBand.BAND_20, -109000, 4512, 4638, -23000, 4287, 4413), 355 UTRAN_ARFCN_FREQUENCY_BAND_21(UtranBand.BAND_21, 1326000, 862, 912, 1358000, 462, 512), 356 UTRAN_ARFCN_FREQUENCY_BAND_22(UtranBand.BAND_22, 2580000, 4662, 5038, 2525000, 4437, 4813), 357 UTRAN_ARFCN_FREQUENCY_BAND_25(UtranBand.BAND_25, 910000, 5112, 5413, 875000, 4887, 5188), 358 UTRAN_ARFCN_FREQUENCY_BAND_A(UtranBand.BAND_A, 0, 10054, 10121, 0, 9504, 9596), 359 UTRAN_ARFCN_FREQUENCY_BAND_B(UtranBand.BAND_B, 0, 9654, 9946, 0, 9254, 9546), 360 UTRAN_ARFCN_FREQUENCY_BAND_C(UtranBand.BAND_C, 0, 0, 0, 0, 9554, 9646), 361 UTRAN_ARFCN_FREQUENCY_BAND_D(UtranBand.BAND_D, 0, 0, 0, 0, 12854, 13096), 362 UTRAN_ARFCN_FREQUENCY_BAND_E(UtranBand.BAND_E, 0, 0, 0, 0, 11504, 11996), 363 UTRAN_ARFCN_FREQUENCY_BAND_F(UtranBand.BAND_F, 0, 0, 0, 0, 9404, 9596); 364 UtranBandArfcnFrequency(int band, int downlinkOffsetKhz, int downlinkRangeFirst, int downlinkRangeLast, int uplinkOffsetKhz, int uplinkRangeFirst, int uplinkRangeLast)365 UtranBandArfcnFrequency(int band, int downlinkOffsetKhz, int downlinkRangeFirst, 366 int downlinkRangeLast, int uplinkOffsetKhz, int uplinkRangeFirst, 367 int uplinkRangeLast) { 368 this.band = band; 369 this.downlinkOffset = downlinkOffsetKhz; 370 this.downlinkRangeFirst = downlinkRangeFirst; 371 this.downlinkRangeLast = downlinkRangeLast; 372 this.uplinkOffset = uplinkOffsetKhz; 373 this.uplinkRangeFirst = uplinkRangeFirst; 374 this.uplinkRangeLast = uplinkRangeLast; 375 } 376 377 int band; 378 int downlinkOffset; 379 int downlinkRangeFirst; 380 int downlinkRangeLast; 381 int uplinkOffset; 382 int uplinkRangeFirst; 383 int uplinkRangeLast; 384 } 385 386 /** 387 * Frequency bands for EUTRAN. 388 * 3GPP TS 36.101, Version 16.4.0, Table 5.5: Operating bands 389 * https://www.etsi.org/deliver/etsi_ts/136100_136199/136101/15.09.00_60/ts_136101v150900p.pdf 390 */ 391 public static final class EutranBand { 392 public static final int BAND_1 = android.hardware.radio.V1_5.EutranBands.BAND_1; 393 public static final int BAND_2 = android.hardware.radio.V1_5.EutranBands.BAND_2; 394 public static final int BAND_3 = android.hardware.radio.V1_5.EutranBands.BAND_3; 395 public static final int BAND_4 = android.hardware.radio.V1_5.EutranBands.BAND_4; 396 public static final int BAND_5 = android.hardware.radio.V1_5.EutranBands.BAND_5; 397 public static final int BAND_6 = android.hardware.radio.V1_5.EutranBands.BAND_6; 398 public static final int BAND_7 = android.hardware.radio.V1_5.EutranBands.BAND_7; 399 public static final int BAND_8 = android.hardware.radio.V1_5.EutranBands.BAND_8; 400 public static final int BAND_9 = android.hardware.radio.V1_5.EutranBands.BAND_9; 401 public static final int BAND_10 = android.hardware.radio.V1_5.EutranBands.BAND_10; 402 public static final int BAND_11 = android.hardware.radio.V1_5.EutranBands.BAND_11; 403 public static final int BAND_12 = android.hardware.radio.V1_5.EutranBands.BAND_12; 404 public static final int BAND_13 = android.hardware.radio.V1_5.EutranBands.BAND_13; 405 public static final int BAND_14 = android.hardware.radio.V1_5.EutranBands.BAND_14; 406 public static final int BAND_17 = android.hardware.radio.V1_5.EutranBands.BAND_17; 407 public static final int BAND_18 = android.hardware.radio.V1_5.EutranBands.BAND_18; 408 public static final int BAND_19 = android.hardware.radio.V1_5.EutranBands.BAND_19; 409 public static final int BAND_20 = android.hardware.radio.V1_5.EutranBands.BAND_20; 410 public static final int BAND_21 = android.hardware.radio.V1_5.EutranBands.BAND_21; 411 public static final int BAND_22 = android.hardware.radio.V1_5.EutranBands.BAND_22; 412 public static final int BAND_23 = android.hardware.radio.V1_5.EutranBands.BAND_23; 413 public static final int BAND_24 = android.hardware.radio.V1_5.EutranBands.BAND_24; 414 public static final int BAND_25 = android.hardware.radio.V1_5.EutranBands.BAND_25; 415 public static final int BAND_26 = android.hardware.radio.V1_5.EutranBands.BAND_26; 416 public static final int BAND_27 = android.hardware.radio.V1_5.EutranBands.BAND_27; 417 public static final int BAND_28 = android.hardware.radio.V1_5.EutranBands.BAND_28; 418 public static final int BAND_30 = android.hardware.radio.V1_5.EutranBands.BAND_30; 419 public static final int BAND_31 = android.hardware.radio.V1_5.EutranBands.BAND_31; 420 public static final int BAND_33 = android.hardware.radio.V1_5.EutranBands.BAND_33; 421 public static final int BAND_34 = android.hardware.radio.V1_5.EutranBands.BAND_34; 422 public static final int BAND_35 = android.hardware.radio.V1_5.EutranBands.BAND_35; 423 public static final int BAND_36 = android.hardware.radio.V1_5.EutranBands.BAND_36; 424 public static final int BAND_37 = android.hardware.radio.V1_5.EutranBands.BAND_37; 425 public static final int BAND_38 = android.hardware.radio.V1_5.EutranBands.BAND_38; 426 public static final int BAND_39 = android.hardware.radio.V1_5.EutranBands.BAND_39; 427 public static final int BAND_40 = android.hardware.radio.V1_5.EutranBands.BAND_40; 428 public static final int BAND_41 = android.hardware.radio.V1_5.EutranBands.BAND_41; 429 public static final int BAND_42 = android.hardware.radio.V1_5.EutranBands.BAND_42; 430 public static final int BAND_43 = android.hardware.radio.V1_5.EutranBands.BAND_43; 431 public static final int BAND_44 = android.hardware.radio.V1_5.EutranBands.BAND_44; 432 public static final int BAND_45 = android.hardware.radio.V1_5.EutranBands.BAND_45; 433 public static final int BAND_46 = android.hardware.radio.V1_5.EutranBands.BAND_46; 434 public static final int BAND_47 = android.hardware.radio.V1_5.EutranBands.BAND_47; 435 public static final int BAND_48 = android.hardware.radio.V1_5.EutranBands.BAND_48; 436 public static final int BAND_49 = android.hardware.radio.V1_5.EutranBands.BAND_49; 437 public static final int BAND_50 = android.hardware.radio.V1_5.EutranBands.BAND_50; 438 public static final int BAND_51 = android.hardware.radio.V1_5.EutranBands.BAND_51; 439 public static final int BAND_52 = android.hardware.radio.V1_5.EutranBands.BAND_52; 440 public static final int BAND_53 = android.hardware.radio.V1_5.EutranBands.BAND_53; 441 public static final int BAND_65 = android.hardware.radio.V1_5.EutranBands.BAND_65; 442 public static final int BAND_66 = android.hardware.radio.V1_5.EutranBands.BAND_66; 443 public static final int BAND_68 = android.hardware.radio.V1_5.EutranBands.BAND_68; 444 public static final int BAND_70 = android.hardware.radio.V1_5.EutranBands.BAND_70; 445 public static final int BAND_71 = android.hardware.radio.V1_5.EutranBands.BAND_71; 446 public static final int BAND_72 = android.hardware.radio.V1_5.EutranBands.BAND_72; 447 public static final int BAND_73 = android.hardware.radio.V1_5.EutranBands.BAND_73; 448 public static final int BAND_74 = android.hardware.radio.V1_5.EutranBands.BAND_74; 449 public static final int BAND_85 = android.hardware.radio.V1_5.EutranBands.BAND_85; 450 public static final int BAND_87 = android.hardware.radio.V1_5.EutranBands.BAND_87; 451 public static final int BAND_88 = android.hardware.radio.V1_5.EutranBands.BAND_88; 452 453 /** 454 * EutranBands 455 * 456 * @hide */ 457 @Retention(RetentionPolicy.SOURCE) 458 @IntDef(prefix = {"BAND_"}, 459 value = {BAND_1, 460 BAND_2, 461 BAND_3, 462 BAND_4, 463 BAND_5, 464 BAND_6, 465 BAND_7, 466 BAND_8, 467 BAND_9, 468 BAND_10, 469 BAND_11, 470 BAND_12, 471 BAND_13, 472 BAND_14, 473 BAND_17, 474 BAND_18, 475 BAND_19, 476 BAND_20, 477 BAND_21, 478 BAND_22, 479 BAND_23, 480 BAND_24, 481 BAND_25, 482 BAND_26, 483 BAND_27, 484 BAND_28, 485 BAND_30, 486 BAND_31, 487 BAND_33, 488 BAND_34, 489 BAND_35, 490 BAND_36, 491 BAND_37, 492 BAND_38, 493 BAND_39, 494 BAND_40, 495 BAND_41, 496 BAND_42, 497 BAND_43, 498 BAND_44, 499 BAND_45, 500 BAND_46, 501 BAND_47, 502 BAND_48, 503 BAND_49, 504 BAND_50, 505 BAND_51, 506 BAND_52, 507 BAND_53, 508 BAND_65, 509 BAND_66, 510 BAND_68, 511 BAND_70, 512 BAND_71, 513 BAND_72, 514 BAND_73, 515 BAND_74, 516 BAND_85, 517 BAND_87, 518 BAND_88}) 519 520 public @interface EutranBands {} 521 522 /** @hide */ EutranBand()523 private EutranBand() {}; 524 } 525 526 /** 527 * 3GPP TS 36.101 Table 5.7.3-1 E-UTRA channel numbers. 528 * 529 * @hide 530 */ 531 enum EutranBandArfcnFrequency { 532 533 EUTRAN_ARFCN_FREQUENCY_BAND_1( 534 EutranBand.BAND_1, 2110000, 0, 599, 1920000, 18800, 18599), 535 EUTRAN_ARFCN_FREQUENCY_BAND_2( 536 EutranBand.BAND_2, 1930000, 600, 1199, 1850000, 18600, 19199), 537 EUTRAN_ARFCN_FREQUENCY_BAND_3( 538 EutranBand.BAND_3, 1805000, 1200, 1949, 1710000, 19200, 19949), 539 EUTRAN_ARFCN_FREQUENCY_BAND_4( 540 EutranBand.BAND_4, 2110000, 1950, 2399, 1710000, 19950, 20399), 541 EUTRAN_ARFCN_FREQUENCY_BAND_5( 542 EutranBand.BAND_5, 869000, 2400, 2649, 824000, 20400, 20649), 543 EUTRAN_ARFCN_FREQUENCY_BAND_6( 544 EutranBand.BAND_6, 875000, 2650, 2749, 830000, 20650, 20749), 545 EUTRAN_ARFCN_FREQUENCY_BAND_7( 546 EutranBand.BAND_7, 2620000, 2750, 3449, 2500000, 20750, 21449), 547 EUTRAN_ARFCN_FREQUENCY_BAND_8( 548 EutranBand.BAND_8, 925000, 3450, 3799, 880000, 21450, 21799), 549 EUTRAN_ARFCN_FREQUENCY_BAND_9( 550 EutranBand.BAND_9, 1844900, 3800, 4149, 1749900, 21800, 22149), 551 EUTRAN_ARFCN_FREQUENCY_BAND_10( 552 EutranBand.BAND_10, 2110000, 4150, 4749, 1710000, 22150, 22749), 553 EUTRAN_ARFCN_FREQUENCY_BAND_11( 554 EutranBand.BAND_11, 1475900, 4750, 4949, 1427900, 22750, 22949), 555 EUTRAN_ARFCN_FREQUENCY_BAND_12( 556 EutranBand.BAND_12, 729000, 5010, 5179, 699000, 23010, 23179), 557 EUTRAN_ARFCN_FREQUENCY_BAND_13( 558 EutranBand.BAND_13, 746000, 5180, 5279, 777000, 23180, 23279), 559 EUTRAN_ARFCN_FREQUENCY_BAND_14( 560 EutranBand.BAND_14, 758000, 5280, 5379, 788000, 23230, 23379), 561 EUTRAN_ARFCN_FREQUENCY_BAND_17( 562 EutranBand.BAND_17, 734000, 5730, 5849, 704000, 23730, 23849), 563 EUTRAN_ARFCN_FREQUENCY_BAND_18( 564 EutranBand.BAND_18, 860000, 5850, 5999, 815000, 23850, 23999), 565 EUTRAN_ARFCN_FREQUENCY_BAND_19( 566 EutranBand.BAND_19, 875000, 6000, 6149, 830000, 24000, 24149), 567 EUTRAN_ARFCN_FREQUENCY_BAND_20( 568 EutranBand.BAND_20, 791000, 6150, 6449, 832000, 24150, 24449), 569 EUTRAN_ARFCN_FREQUENCY_BAND_21( 570 EutranBand.BAND_21, 1495900, 6450, 6599, 1447900, 24450, 24599), 571 EUTRAN_ARFCN_FREQUENCY_BAND_22( 572 EutranBand.BAND_22, 3510000, 6600, 7399, 3410000, 24600, 25399), 573 EUTRAN_ARFCN_FREQUENCY_BAND_23( 574 EutranBand.BAND_23, 2180000, 7500, 7699, 2000000, 25500, 25699), 575 EUTRAN_ARFCN_FREQUENCY_BAND_24( 576 EutranBand.BAND_24, 1525000, 7700, 8039, 1626500, 25700, 26039), 577 EUTRAN_ARFCN_FREQUENCY_BAND_25( 578 EutranBand.BAND_25, 1930000, 8040, 8689, 1850000, 26040, 26689), 579 EUTRAN_ARFCN_FREQUENCY_BAND_26( 580 EutranBand.BAND_26, 859000, 8690, 9039, 814000, 26690, 27039), 581 EUTRAN_ARFCN_FREQUENCY_BAND_27( 582 EutranBand.BAND_27, 852000, 9040, 9209, 807000, 27040, 27209), 583 EUTRAN_ARFCN_FREQUENCY_BAND_28( 584 EutranBand.BAND_28, 758000, 9210, 9659, 703000, 27210, 27659), 585 EUTRAN_ARFCN_FREQUENCY_BAND_30( 586 EutranBand.BAND_30, 2350000, 9770, 9869, 2305000, 27660, 27759), 587 EUTRAN_ARFCN_FREQUENCY_BAND_31( 588 EutranBand.BAND_31, 462500, 9870, 9919, 452500, 27760, 27809), 589 EUTRAN_ARFCN_FREQUENCY_BAND_33( 590 EutranBand.BAND_33, 1900000, 36000, 36199, 1900000, 36000, 36199), 591 EUTRAN_ARFCN_FREQUENCY_BAND_34( 592 EutranBand.BAND_34, 2010000, 36200, 36349, 2010000, 36200, 36349), 593 EUTRAN_ARFCN_FREQUENCY_BAND_35( 594 EutranBand.BAND_35, 1850000, 36350, 36949, 1850000, 36350, 36949), 595 EUTRAN_ARFCN_FREQUENCY_BAND_36( 596 EutranBand.BAND_36, 1930000, 36950, 37549, 1930000, 36950, 37549), 597 EUTRAN_ARFCN_FREQUENCY_BAND_37( 598 EutranBand.BAND_37, 1910000, 37550, 37749, 1910000, 37550, 37749), 599 EUTRAN_ARFCN_FREQUENCY_BAND_38( 600 EutranBand.BAND_38, 2570000, 37750, 38249, 2570000, 37750, 38249), 601 EUTRAN_ARFCN_FREQUENCY_BAND_39( 602 EutranBand.BAND_39, 1880000, 38250, 38649, 1880000, 38250, 38649), 603 EUTRAN_ARFCN_FREQUENCY_BAND_40( 604 EutranBand.BAND_40, 2300000, 38650, 39649, 2300000, 38650, 39649), 605 EUTRAN_ARFCN_FREQUENCY_BAND_41( 606 EutranBand.BAND_41, 2496000, 39650, 41589, 2496000, 39650, 41589), 607 EUTRAN_ARFCN_FREQUENCY_BAND_42( 608 EutranBand.BAND_42, 3400000, 41590, 43589, 3400000, 41590, 43589), 609 EUTRAN_ARFCN_FREQUENCY_BAND_43( 610 EutranBand.BAND_43, 3600000, 43590, 45589, 3600000, 43590, 45589), 611 EUTRAN_ARFCN_FREQUENCY_BAND_44( 612 EutranBand.BAND_44, 703000, 45590, 46589, 703000, 45590, 46589), 613 EUTRAN_ARFCN_FREQUENCY_BAND_45( 614 EutranBand.BAND_45, 1447000, 46590, 46789, 1447000, 46590, 46789), 615 EUTRAN_ARFCN_FREQUENCY_BAND_46( 616 EutranBand.BAND_46, 5150000, 46790, 54539, 5150000, 46790, 54539), 617 EUTRAN_ARFCN_FREQUENCY_BAND_47( 618 EutranBand.BAND_47, 5855000, 54540, 55239, 5855000, 54540, 55239), 619 EUTRAN_ARFCN_FREQUENCY_BAND_48( 620 EutranBand.BAND_48, 3550000, 55240, 56739, 3550000, 55240, 56739), 621 EUTRAN_ARFCN_FREQUENCY_BAND_49( 622 EutranBand.BAND_49, 3550000, 56740, 58239, 3550000, 56740, 58239), 623 EUTRAN_ARFCN_FREQUENCY_BAND_50( 624 EutranBand.BAND_50, 1432000, 58240, 59089, 1432000, 58240, 59089), 625 EUTRAN_ARFCN_FREQUENCY_BAND_51( 626 EutranBand.BAND_51, 1427000, 59090, 59139, 1427000, 59090, 59139), 627 EUTRAN_ARFCN_FREQUENCY_BAND_52( 628 EutranBand.BAND_52, 3300000, 59140, 60139, 3300000, 59140, 60139), 629 EUTRAN_ARFCN_FREQUENCY_BAND_53( 630 EutranBand.BAND_53, 2483500, 60140, 60254, 2483500, 60140, 60254), 631 EUTRAN_ARFCN_FREQUENCY_BAND_65( 632 EutranBand.BAND_65, 2110000, 65536, 66435, 1920000, 131072, 131971), 633 EUTRAN_ARFCN_FREQUENCY_BAND_66( 634 EutranBand.BAND_66, 2110000, 66436, 67335, 1710000, 131972, 132671), 635 EUTRAN_ARFCN_FREQUENCY_BAND_68( 636 EutranBand.BAND_68, 753000, 67536, 67835, 698000, 132672, 132971), 637 EUTRAN_ARFCN_FREQUENCY_BAND_70( 638 EutranBand.BAND_70, 1995000, 68336, 68585, 1695000, 132972, 133121), 639 EUTRAN_ARFCN_FREQUENCY_BAND_71( 640 EutranBand.BAND_71, 617000, 68586, 68935, 663000, 133122, 133471), 641 EUTRAN_ARFCN_FREQUENCY_BAND_72( 642 EutranBand.BAND_72, 461000, 68936, 68985, 451000, 133472, 133521), 643 EUTRAN_ARFCN_FREQUENCY_BAND_73( 644 EutranBand.BAND_73, 460000, 68986, 69035, 450000, 133522, 133571), 645 EUTRAN_ARFCN_FREQUENCY_BAND_74( 646 EutranBand.BAND_74, 1475000, 69036, 69465, 1427000, 133572, 134001), 647 EUTRAN_ARFCN_FREQUENCY_BAND_85( 648 EutranBand.BAND_85, 728000, 70366, 70545, 698000, 134002, 134181), 649 EUTRAN_ARFCN_FREQUENCY_BAND_87( 650 EutranBand.BAND_87, 420000, 70546, 70595, 410000, 134182, 134231), 651 EUTRAN_ARFCN_FREQUENCY_BAND_88( 652 EutranBand.BAND_88, 422000, 70596, 70645, 412000, 134231, 134280); 653 EutranBandArfcnFrequency(int band, int downlinkLowKhz, int downlinkOffset, int downlinkRange, int uplinkLowKhz, int uplinkOffset, int uplinkRange)654 EutranBandArfcnFrequency(int band, int downlinkLowKhz, int downlinkOffset, 655 int downlinkRange, int uplinkLowKhz, int uplinkOffset, 656 int uplinkRange) { 657 this.band = band; 658 this.downlinkLowKhz = downlinkLowKhz; 659 this.downlinkOffset = downlinkOffset; 660 this.downlinkRange = downlinkRange; 661 this.uplinkLowKhz = uplinkLowKhz; 662 this.uplinkOffset = uplinkOffset; 663 this.uplinkRange = uplinkRange; 664 } 665 666 int band; 667 int downlinkLowKhz; 668 int downlinkOffset; 669 int downlinkRange; 670 int uplinkLowKhz; 671 int uplinkOffset; 672 int uplinkRange; 673 } 674 675 /** 676 * Frequency bands for CDMA2000. 677 * http://www.3gpp2.org/Public_html/Specs/C.S0057-E_v1.0_Bandclass_Specification.pdf 678 * @hide 679 * 680 * TODO(yinxu): Check with the nexus team about the definition of CDMA bands. 681 */ 682 public static final class CdmaBands { 683 public static final int BAND_0 = 1; 684 public static final int BAND_1 = 2; 685 public static final int BAND_2 = 3; 686 public static final int BAND_3 = 4; 687 public static final int BAND_4 = 5; 688 public static final int BAND_5 = 6; 689 public static final int BAND_6 = 7; 690 public static final int BAND_7 = 8; 691 public static final int BAND_8 = 9; 692 public static final int BAND_9 = 10; 693 public static final int BAND_10 = 11; 694 public static final int BAND_11 = 12; 695 public static final int BAND_12 = 13; 696 public static final int BAND_13 = 14; 697 public static final int BAND_14 = 15; 698 public static final int BAND_15 = 16; 699 public static final int BAND_16 = 17; 700 public static final int BAND_17 = 18; 701 public static final int BAND_18 = 19; 702 public static final int BAND_19 = 20; 703 public static final int BAND_20 = 21; 704 public static final int BAND_21 = 22; 705 706 /** @hide */ CdmaBands()707 private CdmaBands() {} 708 } 709 710 /** 711 * Frequency bands for NGRAN 712 * https://www.etsi.org/deliver/etsi_ts/138100_138199/13810101/15.08.02_60/ts_13810101v150802p.pdf 713 * https://www.etsi.org/deliver/etsi_ts/138100_138199/13810102/15.08.00_60/ts_13810102v150800p.pdf 714 */ 715 public static final class NgranBands { 716 /** 3GPP TS 38.101-1, Version 16.5.0, Table 5.2-1: FR1 bands */ 717 public static final int BAND_1 = android.hardware.radio.V1_5.NgranBands.BAND_1; 718 public static final int BAND_2 = android.hardware.radio.V1_5.NgranBands.BAND_2; 719 public static final int BAND_3 = android.hardware.radio.V1_5.NgranBands.BAND_3; 720 public static final int BAND_5 = android.hardware.radio.V1_5.NgranBands.BAND_5; 721 public static final int BAND_7 = android.hardware.radio.V1_5.NgranBands.BAND_7; 722 public static final int BAND_8 = android.hardware.radio.V1_5.NgranBands.BAND_8; 723 public static final int BAND_12 = android.hardware.radio.V1_5.NgranBands.BAND_12; 724 public static final int BAND_14 = android.hardware.radio.V1_5.NgranBands.BAND_14; 725 public static final int BAND_18 = android.hardware.radio.V1_5.NgranBands.BAND_18; 726 public static final int BAND_20 = android.hardware.radio.V1_5.NgranBands.BAND_20; 727 public static final int BAND_25 = android.hardware.radio.V1_5.NgranBands.BAND_25; 728 public static final int BAND_26 = android.hardware.radio.V1_6.NgranBands.BAND_26; 729 public static final int BAND_28 = android.hardware.radio.V1_5.NgranBands.BAND_28; 730 public static final int BAND_29 = android.hardware.radio.V1_5.NgranBands.BAND_29; 731 public static final int BAND_30 = android.hardware.radio.V1_5.NgranBands.BAND_30; 732 public static final int BAND_34 = android.hardware.radio.V1_5.NgranBands.BAND_34; 733 public static final int BAND_38 = android.hardware.radio.V1_5.NgranBands.BAND_38; 734 public static final int BAND_39 = android.hardware.radio.V1_5.NgranBands.BAND_39; 735 public static final int BAND_40 = android.hardware.radio.V1_5.NgranBands.BAND_40; 736 public static final int BAND_41 = android.hardware.radio.V1_5.NgranBands.BAND_41; 737 public static final int BAND_46 = android.hardware.radio.V1_6.NgranBands.BAND_46; 738 public static final int BAND_48 = android.hardware.radio.V1_5.NgranBands.BAND_48; 739 public static final int BAND_50 = android.hardware.radio.V1_5.NgranBands.BAND_50; 740 public static final int BAND_51 = android.hardware.radio.V1_5.NgranBands.BAND_51; 741 public static final int BAND_53 = android.hardware.radio.V1_6.NgranBands.BAND_53; 742 public static final int BAND_65 = android.hardware.radio.V1_5.NgranBands.BAND_65; 743 public static final int BAND_66 = android.hardware.radio.V1_5.NgranBands.BAND_66; 744 public static final int BAND_70 = android.hardware.radio.V1_5.NgranBands.BAND_70; 745 public static final int BAND_71 = android.hardware.radio.V1_5.NgranBands.BAND_71; 746 public static final int BAND_74 = android.hardware.radio.V1_5.NgranBands.BAND_74; 747 public static final int BAND_75 = android.hardware.radio.V1_5.NgranBands.BAND_75; 748 public static final int BAND_76 = android.hardware.radio.V1_5.NgranBands.BAND_76; 749 public static final int BAND_77 = android.hardware.radio.V1_5.NgranBands.BAND_77; 750 public static final int BAND_78 = android.hardware.radio.V1_5.NgranBands.BAND_78; 751 public static final int BAND_79 = android.hardware.radio.V1_5.NgranBands.BAND_79; 752 public static final int BAND_80 = android.hardware.radio.V1_5.NgranBands.BAND_80; 753 public static final int BAND_81 = android.hardware.radio.V1_5.NgranBands.BAND_81; 754 public static final int BAND_82 = android.hardware.radio.V1_5.NgranBands.BAND_82; 755 public static final int BAND_83 = android.hardware.radio.V1_5.NgranBands.BAND_83; 756 public static final int BAND_84 = android.hardware.radio.V1_5.NgranBands.BAND_84; 757 public static final int BAND_86 = android.hardware.radio.V1_5.NgranBands.BAND_86; 758 public static final int BAND_89 = android.hardware.radio.V1_5.NgranBands.BAND_89; 759 public static final int BAND_90 = android.hardware.radio.V1_5.NgranBands.BAND_90; 760 public static final int BAND_91 = android.hardware.radio.V1_5.NgranBands.BAND_91; 761 public static final int BAND_92 = android.hardware.radio.V1_5.NgranBands.BAND_92; 762 public static final int BAND_93 = android.hardware.radio.V1_5.NgranBands.BAND_93; 763 public static final int BAND_94 = android.hardware.radio.V1_5.NgranBands.BAND_94; 764 public static final int BAND_95 = android.hardware.radio.V1_5.NgranBands.BAND_95; 765 public static final int BAND_96 = android.hardware.radio.V1_6.NgranBands.BAND_96; 766 767 /** 3GPP TS 38.101-2, Version 16.2.0, Table 5.2-1: FR2 bands */ 768 public static final int BAND_257 = android.hardware.radio.V1_5.NgranBands.BAND_257; 769 public static final int BAND_258 = android.hardware.radio.V1_5.NgranBands.BAND_258; 770 public static final int BAND_260 = android.hardware.radio.V1_5.NgranBands.BAND_260; 771 public static final int BAND_261 = android.hardware.radio.V1_5.NgranBands.BAND_261; 772 773 /** 774 * NR Bands 775 * 776 * @hide */ 777 @Retention(RetentionPolicy.SOURCE) 778 @IntDef(prefix = {"BAND_"}, 779 value = {BAND_1, 780 BAND_2, 781 BAND_3, 782 BAND_5, 783 BAND_7, 784 BAND_8, 785 BAND_12, 786 BAND_14, 787 BAND_18, 788 BAND_20, 789 BAND_25, 790 BAND_26, 791 BAND_28, 792 BAND_29, 793 BAND_30, 794 BAND_34, 795 BAND_38, 796 BAND_39, 797 BAND_40, 798 BAND_41, 799 BAND_46, 800 BAND_48, 801 BAND_50, 802 BAND_51, 803 BAND_53, 804 BAND_65, 805 BAND_66, 806 BAND_70, 807 BAND_71, 808 BAND_74, 809 BAND_75, 810 BAND_76, 811 BAND_77, 812 BAND_78, 813 BAND_79, 814 BAND_80, 815 BAND_81, 816 BAND_82, 817 BAND_83, 818 BAND_84, 819 BAND_86, 820 BAND_89, 821 BAND_90, 822 BAND_91, 823 BAND_92, 824 BAND_93, 825 BAND_94, 826 BAND_95, 827 BAND_96, 828 BAND_257, 829 BAND_258, 830 BAND_260, 831 BAND_261}) 832 public @interface NgranBand {} 833 834 /** 835 * Unknown NR frequency. 836 * 837 * @hide 838 */ 839 @SystemApi 840 public static final int FREQUENCY_RANGE_GROUP_UNKNOWN = 0; 841 842 /** 843 * NR frequency group 1 defined in 3GPP TS 38.101-1 table 5.2-1 844 * 845 * @hide 846 */ 847 @SystemApi 848 public static final int FREQUENCY_RANGE_GROUP_1 = 1; 849 850 /** 851 * NR frequency group 2 defined in 3GPP TS 38.101-2 table 5.2-1 852 * 853 * @hide 854 */ 855 @SystemApi 856 public static final int FREQUENCY_RANGE_GROUP_2 = 2; 857 858 /** 859 * Radio frequency range group 860 * 861 * @hide 862 */ 863 @Retention(RetentionPolicy.SOURCE) 864 @IntDef(prefix = {"FREQUENCY_RANGE_GROUP_"}, 865 value = { 866 FREQUENCY_RANGE_GROUP_UNKNOWN, 867 FREQUENCY_RANGE_GROUP_1, 868 FREQUENCY_RANGE_GROUP_2 869 }) 870 public @interface FrequencyRangeGroup {} 871 872 /** 873 * Get frequency range group 874 * 875 * @param band NR band 876 * @return The frequency range group 877 * 878 * @hide 879 */ 880 @SystemApi getFrequencyRangeGroup(@granBand int band)881 public static @FrequencyRangeGroup int getFrequencyRangeGroup(@NgranBand int band) { 882 switch (band) { 883 case BAND_1: 884 case BAND_2: 885 case BAND_3: 886 case BAND_5: 887 case BAND_7: 888 case BAND_8: 889 case BAND_12: 890 case BAND_14: 891 case BAND_18: 892 case BAND_20: 893 case BAND_25: 894 case BAND_26: 895 case BAND_28: 896 case BAND_29: 897 case BAND_30: 898 case BAND_34: 899 case BAND_38: 900 case BAND_39: 901 case BAND_40: 902 case BAND_41: 903 case BAND_46: 904 case BAND_48: 905 case BAND_50: 906 case BAND_51: 907 case BAND_53: 908 case BAND_65: 909 case BAND_66: 910 case BAND_70: 911 case BAND_71: 912 case BAND_74: 913 case BAND_75: 914 case BAND_76: 915 case BAND_77: 916 case BAND_78: 917 case BAND_79: 918 case BAND_80: 919 case BAND_81: 920 case BAND_82: 921 case BAND_83: 922 case BAND_84: 923 case BAND_86: 924 case BAND_89: 925 case BAND_90: 926 case BAND_91: 927 case BAND_92: 928 case BAND_93: 929 case BAND_94: 930 case BAND_95: 931 case BAND_96: 932 return FREQUENCY_RANGE_GROUP_1; 933 case BAND_257: 934 case BAND_258: 935 case BAND_260: 936 case BAND_261: 937 return FREQUENCY_RANGE_GROUP_2; 938 default: 939 return FREQUENCY_RANGE_GROUP_UNKNOWN; 940 } 941 }; 942 943 /** @hide */ NgranBands()944 private NgranBands() {} 945 } 946 947 /** 948 * 3GPP TS 38.104 Table 5.4.2.1-1 NR-ARFCN parameters for the global frequency raster. 949 * 950 * @hide 951 */ 952 enum NgranArfcnFrequency { 953 954 NGRAN_ARFCN_FREQUENCY_RANGE_1(5, 0, 0, 0, 599999), 955 NGRAN_ARFCN_FREQUENCY_RANGE_2(15, 3000000, 600000, 600000, 2016666), 956 NGRAN_ARFCN_FREQUENCY_RANGE_3(60, 24250080, 2016667, 2016667, 3279165); 957 NgranArfcnFrequency(int globalKhz, int rangeOffset, int arfcnOffset, int rangeFirst, int rangeLast)958 NgranArfcnFrequency(int globalKhz, int rangeOffset, int arfcnOffset, 959 int rangeFirst, int rangeLast) { 960 this.globalKhz = globalKhz; 961 this.rangeOffset = rangeOffset; 962 this.arfcnOffset = arfcnOffset; 963 this.rangeFirst = rangeFirst; 964 this.rangeLast = rangeLast; 965 } 966 967 int globalKhz; 968 int rangeOffset; 969 int arfcnOffset; 970 int rangeFirst; 971 int rangeLast; 972 } 973 974 /** @hide */ AccessNetworkConstants()975 private AccessNetworkConstants() {}; 976 } 977