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