js-apis-radio.md 19.1 KB
Newer Older
Z
zengyawen 已提交
1 2
# 网络搜索

C
clevercong 已提交
3 4
>**说明:**
>
Z
zengyawen 已提交
5 6
>- 从 API Version 6 开始支持。
>- 标记<sup>7+</sup>的接口从API Version 7开始支持。
C
clevercong 已提交
7 8


Z
zengyawen 已提交
9
## 导入模块
C
clevercong 已提交
10 11 12 13 14

```
import radio from '@ohos.telephony.radio'
```

Z
zengyawen 已提交
15
## radio.getRadioTech<a name=radio.getRadioTech-callback></a>
C
clevercong 已提交
16 17 18 19 20 21 22

getRadioTech\(slotId: number, callback: AsyncCallback<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>\): void

获取当前接入的CS域和PS域无线接入技术,使用callback方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
23 24 25 26 27 28
- 参数

  | 参数名   | 类型                                                         | 必填 | 说明                                   |
  | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
  | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<{psRadioTech: [RadioTechnology](#RadioTechnology), csRadioTech:[RadioTechnology](#RadioTechnology)}\> | 是   | 回调函数。                             |
C
clevercong 已提交
29 30 31 32 33 34 35 36 37 38 39

-   示例

    ```
    let slotId = 0;
    radio.getRadioTech(slotId, (err, data) =>{ 
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
40
## radio.getRadioTech<a name=radio.getRadioTech-promise></a>
C
clevercong 已提交
41 42 43 44 45 46 47

getRadioTech\(slotId: number\): Promise<\{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology\}\>

获取当前接入的CS域和PS域无线接入技术,使用Promise方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
48 49 50 51 52 53 54 55 56 57 58
- 参数

  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值

  | 类型                                                         | 说明                                            |
  | ------------------------------------------------------------ | ----------------------------------------------- |
  | Promise<{psRadioTech: [RadioTechnology](#RadioTechnology), csRadioTech: [RadioTechnology](#RadioTechnology)}> | 以Promise形式返回获取当前接入的CS域和PS域技术。 |
C
clevercong 已提交
59 60 61 62 63 64 65 66 67 68 69 70 71 72

-   示例

    ```
    let slotId = 0;
    let promise = radio.getRadioTech(slotId);
    promise.then(data => {
        console.log(`getRadioTech success, data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.log(`getRadioTech fail, err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
73
## radio.getNetworkState<a name=radio.getNetworkState-callback1></a>
C
clevercong 已提交
74 75 76 77 78 79 80

getNetworkState\(callback: AsyncCallback<NetworkState\>\): void

获取网络状态,使用callback方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
81 82 83 84 85
- 参数

  | 参数名   | 类型                                           | 必填 | 说明       |
  | -------- | ---------------------------------------------- | ---- | ---------- |
  | callback | AsyncCallback\<[NetworkState](#NetworkState)\> | 是   | 回调函数。 |
C
clevercong 已提交
86 87 88 89 90 91 92 93 94 95

-   示例

    ```
    radio.getNetworkState((err, data) =>{
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
96
## radio.getNetworkState<a name=radio.getNetworkState-callback2></a>
C
clevercong 已提交
97 98 99 100 101 102 103

getNetworkState\(slotId: number, callback: AsyncCallback<NetworkState\>\): void

获取网络状态,使用callback方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
104 105 106 107 108 109
- 参数

  | 参数名   | 类型                                           | 必填 | 说明                                   |
  | -------- | ---------------------------------------------- | ---- | -------------------------------------- |
  | slotId   | number                                         | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<[NetworkState](#NetworkState)\> | 是   | 回调函数。                             |
C
clevercong 已提交
110 111 112 113 114 115 116 117 118 119 120

-   示例

    ```
    let slotId = 0;
    radio.getNetworkState(slotId, (err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
121
## radio.getNetworkState<a name=radio.getNetworkState-promise></a>
C
clevercong 已提交
122 123 124 125 126 127 128

getNetworkState\(slotId?: number\): Promise<NetworkState\>

获取网络状态,使用Promise方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
129 130 131 132 133 134 135 136 137
- 参数

  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 否   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值

  | 类型                                     | 说明                        |
Z
zengyawen 已提交
138 139
  | ---------------------------------------- | --------------------------- |
  | Promise\<[NetworkState](#NetworkState)\> | 以Promise形式返回网络状态。 |
C
clevercong 已提交
140 141 142 143 144 145 146 147 148 149 150 151 152 153

-   示例

    ```
    let slotId = 0;
    let promise = radio.getNetworkState(slotId);
    promise.then(data => {
        console.log(`getNetworkState success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.log(`getNetworkState fail, promise: err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
154
## radio.getNetworkSelectionMode<a name=radio.getNetworkSelectionMode-callback></a>
C
clevercong 已提交
155 156 157 158 159

getNetworkSelectionMode\(slotId: number, callback: AsyncCallback<NetworkSelectionMode\>\): void

获取当前选网模式,使用callback方式作为异步方法。

Z
zengyawen 已提交
160 161 162 163 164 165
- 参数

  | 参数名   | 类型                                                         | 必填 | 说明                                   |
  | -------- | ------------------------------------------------------------ | ---- | -------------------------------------- |
  | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
  | callback | AsyncCallback\<[NetworkSelectionMode](#NetworkSelectionMode)\> | 是   | 回调函数。                             |
C
clevercong 已提交
166 167 168 169 170 171 172 173 174 175 176

-   示例

    ```
    let slotId = 0;
    radio.getNetworkSelectionMode(slotId, (err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
177
## radio.getNetworkSelectionMode<a name=radio.getNetworkSelectionMode-promise></a>
C
clevercong 已提交
178 179 180 181 182

getNetworkSelectionMode\(slotId: number\): Promise<NetworkSelectionMode\>

获取当前选网模式,使用Promise方式作为异步方法。

Z
zengyawen 已提交
183 184 185 186 187 188 189 190 191 192 193
- 参数

  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值

  | 类型                                                     | 说明                            |
  | -------------------------------------------------------- | ------------------------------- |
  | Promise\<[NetworkSelectionMode](#NetworkSelectionMode)\> | 以Promise形式返回当前选网模式。 |
C
clevercong 已提交
194 195 196 197 198 199 200 201 202 203 204 205 206 207

-   示例

    ```
    let slotId = 0;
    let promise = radio.getNetworkSelectionMode(slotId);
    promise.then(data => {
        console.log(`getNetworkSelectionMode success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.log(`getNetworkSelectionMode fail, promise: err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
208
## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name=radio.getISOCountryCodeForNetwork-callback></a>
C
clevercong 已提交
209 210 211 212 213

getISOCountryCodeForNetwork\(slotId: number, callback: AsyncCallback<string\>\): void

获取注册网络所在国家的ISO国家码,使用callback方式作为异步方法。

Z
zengyawen 已提交
214 215 216 217 218 219
- 参数

  | 参数名   | 类型                    | 必填 | 说明                                     |
  | -------- | ----------------------- | ---- | ---------------------------------------- |
  | slotId   | number                  | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2   |
  | callback | AsyncCallback\<string\> | 是   | 回调函数。返回国家码,例如:CN(中国)。 |
C
clevercong 已提交
220 221 222 223 224 225 226 227 228 229 230

-   示例

    ```
    let slotId = 0;
    radio.getISOCountryCodeForNetwork(slotId, (err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
231
## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name=radio.getISOCountryCodeForNetwork-promise></a>
C
clevercong 已提交
232 233 234 235 236

getISOCountryCodeForNetwork\(slotId: number\): Promise<string\>

获取注册网络所在国家的ISO国家码,使用Promise方式作为异步方法。

Z
zengyawen 已提交
237 238 239 240 241 242 243 244 245 246 247
- 参数

  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值

  | 类型              | 说明                                                         |
  | ----------------- | ------------------------------------------------------------ |
  | Promise\<string\> | 以Promise形式返回注册网络所在国家的ISO国家码,例如CN(中国)。 |
C
clevercong 已提交
248 249 250 251 252 253 254 255 256 257 258 259 260 261

-   示例

    ```
    let slotId = 0;
    let promise = radio.getISOCountryCodeForNetwork(slotId);
    promise.then(data => {
        console.log(`getISOCountryCodeForNetwork success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.log(`getISOCountryCodeForNetwork fail, promise: err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
262
## radio.getSignalInformation<a name=radio.getSignalInformation-callback></a>
C
clevercong 已提交
263 264 265 266 267

getSignalInformation\(slotId: number, callback: AsyncCallback<Array<SignalInformation\>\>\): void

获取指定SIM卡槽对应的注册网络信号强度信息列表,使用callback方式作为异步方法。

Z
zengyawen 已提交
268 269 270 271 272 273
- 参数

  | 参数名   | 类型                                                         | 必填 | 说明                                                         |
  | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
  | slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
  | callback | AsyncCallback\<Array\<[SignalInformation](#SignalInformation)\>\> | 是   | 回调函数,返回[SignalInformation](#SignalInformation)对象的数组。 |
C
clevercong 已提交
274 275 276 277 278 279 280 281 282 283 284

-   示例

    ```
    let slotId = 0;
    radio.getSignalInformation(slotId, (err, data) => {
       console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
285
## radio.getSignalInformation<a name=radio.getSignalInformation-promise></a>
C
clevercong 已提交
286 287 288 289 290

getSignalInformation\(slotId: number\): Promise<Array<SignalInformation\>\>

获取指定SIM卡槽对应的注册网络信号强度信息列表,使用Promise方式作为异步方法。

Z
zengyawen 已提交
291 292 293 294 295 296 297 298 299 300 301
- 参数

  | 参数名 | 类型   | 必填 | 说明                                   |
  | ------ | ------ | ---- | -------------------------------------- |
  | slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |

- 返回值

  | 类型                                                        | 说明                                                         |
  | ----------------------------------------------------------- | ------------------------------------------------------------ |
  | Promise\<Array\<[SignalInformation](#SignalInformation)\>\> | 以Promise形式返回网络信号强度[SignalInformation](#SignalInformation)对象的数组。 |
C
clevercong 已提交
302 303 304 305 306 307 308 309 310 311 312 313 314 315

-   示例

    ```
    let slotId = 0;
    let promise = radio.getSignalInformation(slotId);
    promise.then(data => {
        console.log(`getSignalInformation success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.error(`getSignalInformation fail, promise: err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
316
## radio.isRadioOn<sup>7+</sup><a name=radio.isRadioOn-callback></a>
C
clevercong 已提交
317 318 319 320 321 322 323

isRadioOn\(callback: AsyncCallback<boolean\>\): void

判断Radio是否打开,使用callback方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
324 325 326 327 328
- 参数

  | 参数名   | 类型                     | 必填 | 说明                                                    |
  | -------- | ------------------------ | ---- | ------------------------------------------------------- |
  | callback | AsyncCallback\<boolean\> | 是   | 回调函数。<br/>- true:Radio打开<br/>- false:Radio关闭 |
C
clevercong 已提交
329 330 331 332 333 334 335 336 337 338

-   示例

    ```
    radio.isRadioOn((err, data) => {
        console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
    });
    ```


Z
zengyawen 已提交
339
## radio.isRadioOn<sup>7+</sup><a name=radio.isRadioOn-promise></a>
C
clevercong 已提交
340 341 342 343 344 345 346

isRadioOn\(\): Promise<boolean\>

判断Radio是否打开,使用Promise方式作为异步方法。

需要ohos.permission.GET\_NETWORK\_INFO权限。

Z
zengyawen 已提交
347 348 349 350 351
- 返回值

  | 类型               | 说明                                                         |
  | ------------------ | ------------------------------------------------------------ |
  | Promise\<boolean\> | 以Promise形式返回判断Radio是否打开的结果。<br/>- true:Radio打开<br/>- false:Radio关闭 |
C
clevercong 已提交
352 353 354 355 356 357 358 359 360 361 362 363 364

-   示例

    ```
    let promise = radio.isRadioOn();
    promise.then(data => {
        console.log(`isRadioOn success, promise: data->${JSON.stringify(data)}`);
    }).catch(err => {
        console.error(`isRadioOn fail, promise: err->${JSON.stringify(err)}`);
    });
    ```


Z
zengyawen 已提交
365
## RadioTechnology<a name=RadioTechnology></a>
C
clevercong 已提交
366 367 368

无线接入技术。

Z
zengyawen 已提交
369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386
| 变量                      | 值   | 说明                                                         |
| ------------------------- | ---- | ------------------------------------------------------------ |
| RADIO_TECHNOLOGY_UNKNOWN  | 0    | 未知无线接入技术(RAT)。                                    |
| RADIO_TECHNOLOGY_GSM      | 1    | 无线接入技术GSM(Global System For Mobile Communication)。  |
| RADIO_TECHNOLOGY_1XRTT    | 2    | 无线接入技术1XRTT(Single-Carrier Radio Transmission Technology)。 |
| RADIO_TECHNOLOGY_WCDMA    | 3    | 无线接入技术WCDMA(Wideband Code Division Multiple Access)。 |
| RADIO_TECHNOLOGY_HSPA     | 4    | 无线接入技术HSPA(High Speed Packet Access)。               |
| RADIO_TECHNOLOGY_HSPAP    | 5    | 无线接入技术HSPAP(High Speed packet access (HSPA+) )。     |
| RADIO_TECHNOLOGY_TD_SCDMA | 6    | 无线接入技术TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 |
| RADIO_TECHNOLOGY_EVDO     | 7    | 无线接入技术EVDO(Evolution、Data Only)。                   |
| RADIO_TECHNOLOGY_EHRPD    | 8    | 无线接入技术EHRPD(Evolved High Rate Package Data)。        |
| RADIO_TECHNOLOGY_LTE      | 9    | 无线接入技术LTE(Long Term Evolution)。                     |
| RADIO_TECHNOLOGY_LTE_CA   | 10   | 无线接入技术LTE_CA(Long Term Evolution_Carrier Aggregation)。 |
| RADIO_TECHNOLOGY_IWLAN    | 11   | 无线接入技术IWLAN(Industrial Wireless LAN)。               |
| RADIO_TECHNOLOGY_NR       | 12   | 无线接入技术NR(New Radio)。                                |


## SignalInformation<a name=SignalInformation></a>
C
clevercong 已提交
387 388 389

网络信号强度信息对象。

Z
zengyawen 已提交
390 391 392 393 394 395 396
| 属性名      | 类型                        | 说明               |
| ----------- | --------------------------- | ------------------ |
| signalType  | [NetworkType](#NetworkType) | 网络信号强度类型。 |
| signalLevel | number                      | 网络信号强度等级。 |


## NetworkType<a name=NetworkType></a>
C
clevercong 已提交
397 398 399

网络类型。

Z
zengyawen 已提交
400 401 402 403 404 405 406 407 408 409 410
| 变量                 | 值   | 说明                                                         |
| -------------------- | ---- | ------------------------------------------------------------ |
| NETWORK_TYPE_UNKNOWN | 0    | 未知网络类型。                                               |
| NETWORK_TYPE_GSM     | 1    | 网络类型为GSM(Global System For Mobile Communication)。    |
| NETWORK_TYPE_CDMA    | 2    | 网络类型为CDMA(Code Division Multiple Access)。            |
| NETWORK_TYPE_WCDMA   | 3    | 网络类型为WCDMA(Wideband Code Division Multiple Access)。  |
| NETWORK_TYPE_TDSCDMA | 4    | 网络类型为TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 |
| NETWORK_TYPE_LTE     | 5    | 网络类型为LTE(Long Term Evolution)。                       |
| NETWORK_TYPE_NR      | 6    | 网络类型为5G NR(New Radio)。                               |

## NetworkState<a name=NetworkState></a>
C
clevercong 已提交
411 412 413

网络注册状态。

Z
zengyawen 已提交
414 415 416 417 418 419 420 421 422 423 424 425 426
| 变量              | 类型                  | 说明                           |
| ----------------- | --------------------- | ------------------------------ |
| longOperatorName  | string                | 注册网络的长运营商名称。       |
| shortOperatorName | string                | 注册网络的短运营商名称。       |
| plmnNumeric       | string                | 注册网络的PLMN码。             |
| isRoaming         | boolean               | 是否处于漫游状态。             |
| regState          | [RegState](#RegState) | 设备的网络注册状态。           |
| nsaState          | [NsaState](#NsaState) | 设备的NSA网络注册状态。        |
| isCaActive        | boolean               | CA的状态。                     |
| isEmergency       | boolean               | 此设备是否只允许拨打紧急呼叫。 |


## RegState<a name=RegState></a>
C
clevercong 已提交
427 428 429

网络注册状态。

Z
zengyawen 已提交
430 431 432 433 434 435 436 437 438
| 变量                          | 值   | 说明                       |
| ----------------------------- | ---- | -------------------------- |
| REG_STATE_NO_SERVICE          | 0    | 设备不能使用任何服务。     |
| REG_STATE_IN_SERVICE          | 1    | 设备可以正常使用业务。     |
| REG_STATE_EMERGENCY_CALL_ONLY | 2    | 设备只能使用紧急呼叫业务。 |
| REG_STATE_POWER_OFF           | 3    | 蜂窝无线电已关闭。         |


## NsaState<a name=NsaState></a>
C
clevercong 已提交
439 440 441

非独立组网状态。

Z
zengyawen 已提交
442 443 444 445 446 447 448 449 450 451 452
| 变量                       | 值   | 说明                                                       |
| -------------------------- | ---- | ---------------------------------------------------------- |
| NSA_STATE_NOT_SUPPORT      | 1    | 设备在不支持NSA的LTE小区下处于空闲状态或连接状态。         |
| NSA_STATE_NO_DETECT        | 2    | 在支持NSA但不支持NR覆盖检测的LTE小区下,设备处于空闲状态。 |
| NSA_STATE_CONNECTED_DETECT | 3    | 设备在LTE小区下连接到LTE网络支持NSA和NR覆盖检测。          |
| NSA_STATE_IDLE_DETECT      | 4    | 支持NSA和NR覆盖检测的LTE小区下设备处于空闲状态。           |
| NSA_STATE_DUAL_CONNECTED   | 5    | 设备在支持NSA的LTE小区下连接到LTE + NR网络。               |
| NSA_STATE_SA_ATTACHED      | 6    | 设备在5GC附着时在NG-RAN小区下空闲或连接到NG-RAN小区。      |


## NetworkSelectionMode<a name=NetworkSelectionMode></a>
C
clevercong 已提交
453 454 455

选网模式。

Z
zengyawen 已提交
456 457 458 459 460
| 变量                        | 值   | 说明           |
| --------------------------- | ---- | -------------- |
| NETWORK_SELECTION_UNKNOWN   | 0    | 未知选网模式。 |
| NETWORK_SELECTION_AUTOMATIC | 1    | 自动选网模式。 |
| NETWORK_SELECTION_MANUAL    | 2    | 手动选网模式。 |