• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Radio
2
3> **NOTE**<br>
4> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version.
5
6
7## Modules to Import
8
9```js
10import radio from '@ohos.telephony.radio'
11```
12
13## radio.getRadioTech
14
15getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>\): void
16
17Obtains the radio access technology (RAT) used by the CS and PS domains. This API uses an asynchronous callback to return the result.
18
19**Required permission**: ohos.permission.GET_NETWORK_INFO
20
21**System capability**: SystemCapability.Telephony.CoreService
22
23**Parameters**
24
25| Name  | Type                                                        | Mandatory| Description                                  |
26| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
27| slotId   | number                                                       | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
28| callback | AsyncCallback\<{psRadioTech: [RadioTechnology](#radiotechnology), csRadioTech:[RadioTechnology](#radiotechnology)}\> | Yes  | Callback used to return the result.                            |
29
30**Example**
31
32```js
33let slotId = 0;
34radio.getRadioTech(slotId, (err, data) =>{
35    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
36});
37```
38
39
40## radio.getRadioTech
41
42getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>
43
44Obtains the RAT used by the CS and PS domains. This API uses a promise to return the result.
45
46**Required permission**: ohos.permission.GET_NETWORK_INFO
47
48**System capability**: SystemCapability.Telephony.CoreService
49
50**Parameters**
51
52| Name| Type  | Mandatory| Description                                  |
53| ------ | ------ | ---- | -------------------------------------- |
54| slotId | number | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
55
56**Return value**
57
58| Type                                                        | Description                                           |
59| ------------------------------------------------------------ | ----------------------------------------------- |
60| Promise<{psRadioTech: [RadioTechnology](#radiotechnology), csRadioTech: [RadioTechnology](#radiotechnology)}> | Promise used to return the result.|
61
62**Example**
63
64```js
65let slotId = 0;
66let promise = radio.getRadioTech(slotId);
67promise.then(data => {
68    console.log(`getRadioTech success, data->${JSON.stringify(data)}`);
69}).catch(err => {
70    console.log(`getRadioTech fail, err->${JSON.stringify(err)}`);
71});
72```
73
74
75## radio.getNetworkState
76
77getNetworkState\(callback: AsyncCallback<NetworkState\>\): void
78
79Obtains the network status. This API uses an asynchronous callback to return the result.
80
81**Required permission**: ohos.permission.GET_NETWORK_INFO
82
83**System capability**: SystemCapability.Telephony.CoreService
84
85**Parameters**
86
87| Name  | Type                                          | Mandatory| Description      |
88| -------- | ---------------------------------------------- | ---- | ---------- |
89| callback | AsyncCallback\<[NetworkState](#networkstate)\> | Yes  | Callback used to return the result.|
90
91**Example**
92
93```js
94radio.getNetworkState((err, data) =>{
95    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
96});
97```
98
99
100## radio.getNetworkState
101
102getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void
103
104Obtains the network status. This API uses an asynchronous callback to return the result.
105
106**Required permission**: ohos.permission.GET_NETWORK_INFO
107
108**System capability**: SystemCapability.Telephony.CoreService
109
110**Parameters**
111
112| Name  | Type                                          | Mandatory| Description                                  |
113| -------- | ---------------------------------------------- | ---- | -------------------------------------- |
114| slotId   | number                                         | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
115| callback | AsyncCallback\<[NetworkState](#networkstate)\> | Yes  | Callback used to return the result.                            |
116
117**Example**
118
119```js
120let slotId = 0;
121radio.getNetworkState(slotId, (err, data) => {
122    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
123});
124```
125
126
127## radio.getNetworkState
128
129getNetworkState\(slotId?: number\): Promise<NetworkState\>
130
131Obtains the network status of the SIM card in the specified slot. This API uses a promise to return the result.
132
133**Required permission**: ohos.permission.GET_NETWORK_INFO
134
135**System capability**: SystemCapability.Telephony.CoreService
136
137**Parameters**
138
139| Name| Type  | Mandatory| Description                                  |
140| ------ | ------ | ---- | -------------------------------------- |
141| slotId | number | No  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
142
143**Return value**
144
145| Type                                    | Description                       |
146| ---------------------------------------- | --------------------------- |
147| Promise\<[NetworkState](#networkstate)\> | Promise used to return the result.|
148
149**Example**
150
151```js
152let slotId = 0;
153let promise = radio.getNetworkState(slotId);
154promise.then(data => {
155    console.log(`getNetworkState success, promise: data->${JSON.stringify(data)}`);
156}).catch(err => {
157    console.log(`getNetworkState fail, promise: err->${JSON.stringify(err)}`);
158});
159```
160
161
162## radio.getNetworkSelectionMode
163
164getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectionMode\>\): void
165
166Obtains the network selection mode of the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
167
168**System capability**: SystemCapability.Telephony.CoreService
169
170**Parameters**
171
172| Name  | Type                                                        | Mandatory| Description                                  |
173| -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
174| slotId   | number                                                       | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
175| callback | AsyncCallback\<[NetworkSelectionMode](#networkselectionmode)\> | Yes  | Callback used to return the result.                            |
176
177**Example**
178
179```js
180let slotId = 0;
181radio.getNetworkSelectionMode(slotId, (err, data) => {
182    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
183});
184```
185
186
187## radio.getNetworkSelectionMode
188
189getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\>
190
191Obtains the network selection mode of the SIM card in the specified slot. This API uses a promise to return the result.
192
193**System capability**: SystemCapability.Telephony.CoreService
194
195**Parameters**
196
197| Name| Type  | Mandatory| Description                                  |
198| ------ | ------ | ---- | -------------------------------------- |
199| slotId | number | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
200
201**Return value**
202
203| Type                                                    | Description                           |
204| -------------------------------------------------------- | ------------------------------- |
205| Promise\<[NetworkSelectionMode](#networkselectionmode)\> | Promise used to return the result.|
206
207**Example**
208
209```js
210let slotId = 0;
211let promise = radio.getNetworkSelectionMode(slotId);
212promise.then(data => {
213    console.log(`getNetworkSelectionMode success, promise: data->${JSON.stringify(data)}`);
214}).catch(err => {
215    console.log(`getNetworkSelectionMode fail, promise: err->${JSON.stringify(err)}`);
216});
217```
218
219
220## radio.getISOCountryCodeForNetwork<sup>7+</sup>
221
222getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): void
223
224Obtains the ISO country code of the network with which the SIM card in the specified slot is registered. This API uses an asynchronous callback to return the result.
225
226**System capability**: SystemCapability.Telephony.CoreService
227
228**Parameters**
229
230| Name  | Type                   | Mandatory| Description                                    |
231| -------- | ----------------------- | ---- | ---------------------------------------- |
232| slotId   | number                  | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2  |
233| callback | AsyncCallback\<string\> | Yes  | Callback used to return the result. which is a country code, for example, **CN** (China).|
234
235**Example**
236
237```js
238let slotId = 0;
239radio.getISOCountryCodeForNetwork(slotId, (err, data) => {
240    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
241});
242```
243
244
245## radio.getISOCountryCodeForNetwork<sup>7+</sup>
246
247getISOCountryCodeForNetwork\(slotId: number\): Promise<string\>
248
249Obtains the ISO country code of the network with which the SIM card in the specified slot is registered. This API uses a promise to return the result.
250
251**System capability**: SystemCapability.Telephony.CoreService
252
253**Parameters**
254
255| Name| Type  | Mandatory| Description                                  |
256| ------ | ------ | ---- | -------------------------------------- |
257| slotId | number | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
258
259**Return value**
260
261| Type             | Description                                                        |
262| ----------------- | ------------------------------------------------------------ |
263| Promise\<string\> | Promise used to return the result, which is an ISO country code, for example, **CN** (China).|
264
265**Example**
266
267```js
268let slotId = 0;
269let promise = radio.getISOCountryCodeForNetwork(slotId);
270promise.then(data => {
271    console.log(`getISOCountryCodeForNetwork success, promise: data->${JSON.stringify(data)}`);
272}).catch(err => {
273    console.log(`getISOCountryCodeForNetwork fail, promise: err->${JSON.stringify(err)}`);
274});
275```
276
277
278## radio.getPrimarySlotId<sup>7+</sup>
279
280getPrimarySlotId\(callback: AsyncCallback\<number\>\): void
281
282Obtains the ID of the slot in which the primary card is located. This API uses an asynchronous callback to return the result.
283
284**System capability**: SystemCapability.Telephony.CoreService
285
286**Parameters**
287
288| Name  | Type                                                        | Mandatory| Description                                                        |
289| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
290| callback | AsyncCallback\<number\> | Yes  | Callback used to return the result.|
291
292**Example**
293
294```js
295radio.getPrimarySlotId((err, data) => {
296   console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
297});
298```
299
300
301## radio.getPrimarySlotId<sup>7+</sup>
302
303getPrimarySlotId\(\): Promise\<number\>
304
305Obtains the ID of the slot in which the primary card is located. This API uses a promise to return the result.
306
307**System capability**: SystemCapability.Telephony.CoreService
308
309**Return value**
310
311| Type                                                       | Description                                                        |
312| ----------------------------------------------------------- | ------------------------------------------------------------ |
313| Promise\<number\> | Promise used to return the result.|
314
315**Example**
316
317```js
318let promise = radio.getPrimarySlotId();
319promise.then(data => {
320    console.log(`getPrimarySlotId success, promise: data->${JSON.stringify(data)}`);
321}).catch(err => {
322    console.error(`getPrimarySlotId fail, promise: err->${JSON.stringify(err)}`);
323});
324```
325
326
327## radio.getSignalInformation<sup>7+</sup>
328
329getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInformation\>\>\): void
330
331Obtains a list of signal strengths of the network with which the SIM card in the specified slot is registered. This API uses an asynchronous callback to return the result.
332
333**System capability**: SystemCapability.Telephony.CoreService
334
335**Parameters**
336
337| Name  | Type                                                        | Mandatory| Description                                                        |
338| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
339| slotId   | number                                                       | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2                      |
340| callback | AsyncCallback\<Array\<[SignalInformation](#signalinformation)\>\> | Yes  | Callback used to return the result, which is a list of [SignalInformation](#signalinformation) objects.|
341
342**Example**
343
344```js
345let slotId = 0;
346radio.getSignalInformation(slotId, (err, data) => {
347   console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
348});
349```
350
351
352## radio.getSignalInformation<sup>7+</sup>
353
354getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\>
355
356Obtains a list of signal strengths of the network with which the SIM card in the specified slot is registered. This API uses a promise to return the result.
357
358**System capability**: SystemCapability.Telephony.CoreService
359
360**Parameters**
361
362| Name| Type  | Mandatory| Description                                  |
363| ------ | ------ | ---- | -------------------------------------- |
364| slotId | number | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
365
366**Return value**
367
368| Type                                                       | Description                                                        |
369| ----------------------------------------------------------- | ------------------------------------------------------------ |
370| Promise\<Array\<[SignalInformation](#signalinformation)\>\> | Promise used to return the result, which is a list of [SignalInformation](#signalinformation) objects.|
371
372**Example**
373
374```js
375let slotId = 0;
376let promise = radio.getSignalInformation(slotId);
377promise.then(data => {
378    console.log(`getSignalInformation success, promise: data->${JSON.stringify(data)}`);
379}).catch(err => {
380    console.error(`getSignalInformation fail, promise: err->${JSON.stringify(err)}`);
381});
382```
383
384
385## radio.isNrSupported<sup>8+</sup>
386
387isNrSupported\(slotId: number\): boolean
388
389Checks whether the current device supports 5G \(NR\).
390
391**System capability**: SystemCapability.Telephony.CoreService
392
393**Parameters**
394
395| Name| Type  | Mandatory| Description                                  |
396| ------ | ------ | ---- | -------------------------------------- |
397| slotId | number | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
398
399**Return value**
400
401| Type              | Description                                                        |
402| ------------------ | ------------------------------------------------------------ |
403| boolean | - **true**: The current device supports 5G \(NR\).<br>- **false**: The current device does not support 5G \(NR\).|
404
405**Example**
406
407```js
408let slotId = 0;
409let result = radio.isNrSupported(slotId);
410console.log("Result: "+ result);
411```
412
413
414## radio.isRadioOn<sup>7+</sup>
415
416isRadioOn\(callback: AsyncCallback<boolean\>\): void
417
418Checks whether the radio service is enabled on the primary SIM card. This API uses an asynchronous callback to return the result.
419
420**Required permission**: ohos.permission.GET_NETWORK_INFO
421
422**System capability**: SystemCapability.Telephony.CoreService
423
424**Parameters**
425
426| Name  | Type                    | Mandatory| Description                                                   |
427| -------- | ------------------------ | ---- | ------------------------------------------------------- |
428| callback | AsyncCallback\<boolean\> | Yes  | Callback used to return the result.<br>- **true**: The radio service is enabled.<br>- **false**: The radio service is disabled.|
429
430**Example**
431
432```js
433radio.isRadioOn((err, data) => {
434    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
435});
436```
437
438
439## radio.isRadioOn<sup>7+</sup>
440
441isRadioOn\(slotId: number, callback: AsyncCallback<boolean\>\): void
442
443Checks whether the radio service is enabled on the SIM card in the specified slot. This API uses an asynchronous callback to return the result.
444
445**Required permission**: ohos.permission.GET_NETWORK_INFO
446
447**System capability**: SystemCapability.Telephony.CoreService
448
449**Parameters**
450
451| Name  | Type                    | Mandatory| Description                                                   |
452| -------- | ------------------------ | ---- | ------------------------------------------------------- |
453| slotId   | number                   | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2                 |
454| callback | AsyncCallback\<boolean\> | Yes  | Callback used to return the result.<br>- **true**: The radio service is enabled.<br>- **false**: The radio service is disabled.|
455
456**Example**
457
458```js
459let slotId = 0;
460radio.isRadioOn(slotId, (err, data) => {
461    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
462});
463```
464
465
466## radio.isRadioOn<sup>7+</sup>
467
468isRadioOn\(slotId?: number\): Promise<boolean\>
469
470Checks whether the radio service is enabled. This API uses a promise to return the result.
471
472**Required permission**: ohos.permission.GET_NETWORK_INFO
473
474**System capability**: SystemCapability.Telephony.CoreService
475
476**Parameters**
477
478| Name| Type  | Mandatory| Description                                  |
479| ------ | ------ | ---- | -------------------------------------- |
480| slotId | number | No  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2<br>If the slot ID is not specified, this API is defaulted to check whether the radio service is enabled on the primary SIM card.|
481
482**Return value**
483
484| Type              | Description                                                        |
485| ------------------ | ------------------------------------------------------------ |
486| Promise\<boolean\> | Promise used to return the result.<br>- **true**: The radio service is enabled.<br>- **false**: The radio service is disabled.|
487
488**Example**
489
490```js
491let slotId = 0;
492let promise = radio.isRadioOn(slotId);
493promise.then(data => {
494    console.log(`isRadioOn success, promise: data->${JSON.stringify(data)}`);
495}).catch(err => {
496    console.error(`isRadioOn fail, promise: err->${JSON.stringify(err)}`);
497});
498```
499
500
501## radio.getOperatorName<sup>7+</sup>
502
503getOperatorName\(slotId: number, callback: AsyncCallback<string\>\): void
504
505Obtains the carrier name. This API uses an asynchronous callback to return the result.
506
507**System capability**: SystemCapability.Telephony.CoreService
508
509**Parameters**
510
511| Name  | Type                   | Mandatory| Description                                      |
512| -------- | ----------------------- | ---- | ------------------------------------------ |
513| slotId   | number                  | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2    |
514| callback | AsyncCallback\<string\> | Yes  | Callback used to return the result, which is the carrier name, for example, China Mobile.|
515
516**Example**
517
518```js
519let slotId = 0;
520radio.getOperatorName(slotId, (err, data) => {
521    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
522});
523```
524
525
526## radio.getOperatorName<sup>7+</sup>
527
528getOperatorName\(slotId: number\): Promise<string\>
529
530Obtains the carrier name. This API uses a promise to return the result.
531
532**System capability**: SystemCapability.Telephony.CoreService
533
534**Parameters**
535
536| Name| Type  | Mandatory| Description                                  |
537| ------ | ------ | ---- | -------------------------------------- |
538| slotId | number | Yes  | Card slot ID.<br>- **0**: card slot 1<br>- **1**: card slot 2|
539
540**Return value**
541
542| Type             | Description                                                        |
543| ----------------- | ------------------------------------------------------------ |
544| Promise\<string\> | Promise used t return the result, which is the carrier name, for example, China Mobile.               |
545
546**Example**
547
548```js
549let slotId = 0;
550let promise = radio.getOperatorName(slotId);
551promise.then(data => {
552    console.log(`getOperatorName success, promise: data->${JSON.stringify(data)}`);
553}).catch(err => {
554    console.log(`getOperatorName fail, promise: err->${JSON.stringify(err)}`);
555});
556```
557
558
559## RadioTechnology
560
561Enumerates the RATs.
562
563**System capability**: SystemCapability.Telephony.CoreService
564
565| Name                     | Value  | Description                                                        |
566| ------------------------- | ---- | ------------------------------------------------------------ |
567| RADIO_TECHNOLOGY_UNKNOWN  | 0    | Unknown RAT                                   |
568| RADIO_TECHNOLOGY_GSM      | 1    | Global System for Mobile Communication (GSM) |
569| RADIO_TECHNOLOGY_1XRTT    | 2    | Single-Carrier Radio Transmission Technology (1XRTT)|
570| RADIO_TECHNOLOGY_WCDMA    | 3    | Wideband Code Division Multiple Access (WCDMA)|
571| RADIO_TECHNOLOGY_HSPA     | 4    | High Speed Packet Access (HSPA)              |
572| RADIO_TECHNOLOGY_HSPAP    | 5    | Evolved High Speed Packet Access (HSPA+)    |
573| RADIO_TECHNOLOGY_TD_SCDMA | 6    | Time Division Synchronous Code Division Multiple Access (TD-SCDMA)|
574| RADIO_TECHNOLOGY_EVDO     | 7    | Evolution-Data Optimized (EVDO)                  |
575| RADIO_TECHNOLOGY_EHRPD    | 8    | Evolved High Rate Package Data (EHRPD)       |
576| RADIO_TECHNOLOGY_LTE      | 9    | Long Term Evolution (LTE)                    |
577| RADIO_TECHNOLOGY_LTE_CA   | 10   | Long Term Evolution_Carrier Aggregation (LTE_CA)|
578| RADIO_TECHNOLOGY_IWLAN    | 11   | Industrial Wireless LAN (IWLAN)              |
579| RADIO_TECHNOLOGY_NR       | 12   | New Radio (NR)                               |
580
581
582## SignalInformation
583
584Defines the signal strength.
585
586**System capability**: SystemCapability.Telephony.CoreService
587
588| Name     | Type                       | Description              |
589| ----------- | --------------------------- | ------------------ |
590| signalType  | [NetworkType](#networktype) | Signal strength type.|
591| signalLevel | number                      | Signal strength level.|
592
593
594## NetworkType
595
596Defines the network type.
597
598**System capability**: SystemCapability.Telephony.CoreService
599
600| Name                | Value  | Description                                                        |
601| -------------------- | ---- | ------------------------------------------------------------ |
602| NETWORK_TYPE_UNKNOWN | 0    | Unknown network.                                              |
603| NETWORK_TYPE_GSM     | 1    | GSM network.   |
604| NETWORK_TYPE_CDMA    | 2    | CDMA network.           |
605| NETWORK_TYPE_WCDMA   | 3    | WCDMA network. |
606| NETWORK_TYPE_TDSCDMA | 4    | TD-SCDMA network.|
607| NETWORK_TYPE_LTE     | 5    | LTE network.                      |
608| NETWORK_TYPE_NR      | 6    | 5G NR network.                              |
609
610## NetworkState
611
612Defines the network registration status.
613
614**System capability**: SystemCapability.Telephony.CoreService
615
616| Name           | Type                 | Description                                                        |
617| ----------------- | --------------------- | ------------------------------------------------------------ |
618| longOperatorName  | string                | Long carrier name of the registered network.|
619| shortOperatorName | string                | Short carrier name of the registered network.|
620| plmnNumeric       | string                | PLMN code of the registered network.|
621| isRoaming         | boolean               | Whether the user is roaming.|
622| regState          | [RegState](#regstate) | Network registration status of the device.|
623| cfgTech<sup>8+</sup> | [RadioTechnology](#radiotechnology) | RAT of the device.|
624| nsaState          | [NsaState](#nsastate) | NSA network registration status of the device.|
625| isCaActive        | boolean               | CA status.|
626| isEmergency       | boolean               | Whether only emergency calls are allowed.|
627
628
629## RegState
630
631Defines the network registration status.
632
633**System capability**: SystemCapability.Telephony.CoreService
634
635| Name                         | Value  | Description                      |
636| ----------------------------- | ---- | -------------------------- |
637| REG_STATE_NO_SERVICE          | 0    | The device cannot use any service.    |
638| REG_STATE_IN_SERVICE          | 1    | The device can use services normally.     |
639| REG_STATE_EMERGENCY_CALL_ONLY | 2    | The device can use only the emergency call service.|
640| REG_STATE_POWER_OFF           | 3    | The cellular radio service is disabled.        |
641
642
643## NsaState
644
645Enumerates NSA network states.
646
647**System capability**: SystemCapability.Telephony.CoreService
648
649| Name                      | Value  | Description                                                      |
650| -------------------------- | ---- | ---------------------------------------------------------- |
651| NSA_STATE_NOT_SUPPORT      | 1    | The device is in idle or connected state in an LTE cell that does not support NSA.        |
652| NSA_STATE_NO_DETECT        | 2    | The device is in the idle state in an LTE cell that supports NSA but not NR coverage detection.|
653| NSA_STATE_CONNECTED_DETECT | 3    | The device is connected to the LTE network in an LTE cell that supports NSA and NR coverage detection.         |
654| NSA_STATE_IDLE_DETECT      | 4    | The device is in the idle state in an LTE cell that supports NSA and NR coverage detection.          |
655| NSA_STATE_DUAL_CONNECTED   | 5    | The device is connected to the LTE/NR network in an LTE cell that supports NSA.              |
656| NSA_STATE_SA_ATTACHED      | 6    | The device is idle or connected to the NG-RAN cell when being attached to the 5G Core.     |
657
658
659## NetworkSelectionMode
660
661Enumerates network selection modes.
662
663**System capability**: SystemCapability.Telephony.CoreService
664
665| Name                       | Value  | Description          |
666| --------------------------- | ---- | -------------- |
667| NETWORK_SELECTION_UNKNOWN   | 0    | Unknown network selection mode.|
668| NETWORK_SELECTION_AUTOMATIC | 1    | Automatic network selection mode.|
669| NETWORK_SELECTION_MANUAL    | 2    | Manual network selection mode.|
670