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