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

C
clevercong 已提交
3 4
>**说明:**
>
Z
zengyawen 已提交
5
>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
C
clevercong 已提交
6 7


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

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

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

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

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

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

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

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

-   示例

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


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

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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
72
## radio.getNetworkState<a name=radio.getNetworkState-callback1></a>
C
clevercong 已提交
73 74 75 76 77 78 79

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

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

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

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

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

-   示例

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


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

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

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

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

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

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

-   示例

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


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

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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
153
## radio.getNetworkSelectionMode<a name=radio.getNetworkSelectionMode-callback></a>
C
clevercong 已提交
154 155 156 157 158

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

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

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

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

-   示例

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


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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
207
## radio.getISOCountryCodeForNetwork<sup>7+</sup><a name=radio.getISOCountryCodeForNetwork-callback></a>
C
clevercong 已提交
208 209 210 211 212

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

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

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

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

-   示例

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


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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
261
## radio.getSignalInformation<a name=radio.getSignalInformation-callback></a>
C
clevercong 已提交
262 263 264 265 266

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

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

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

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

-   示例

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


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

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

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

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

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

- 返回值

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

-   示例

    ```
    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 已提交
315
## radio.isRadioOn<sup>7+</sup><a name=radio.isRadioOn-callback></a>
C
clevercong 已提交
316 317 318 319 320 321 322

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

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

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

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

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

-   示例

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


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

isRadioOn\(\): Promise<boolean\>

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

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

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

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

-   示例

    ```
    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 已提交
364
## RadioTechnology<a name=RadioTechnology></a>
C
clevercong 已提交
365 366 367

无线接入技术。

Z
zengyawen 已提交
368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
| 变量                      | 值   | 说明                                                         |
| ------------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
386 387 388

网络信号强度信息对象。

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


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

网络类型。

Z
zengyawen 已提交
399 400 401 402 403 404 405 406 407 408 409
| 变量                 | 值   | 说明                                                         |
| -------------------- | ---- | ------------------------------------------------------------ |
| 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 已提交
410 411 412

网络注册状态。

Z
zengyawen 已提交
413 414 415 416 417 418 419 420 421 422 423 424 425
| 变量              | 类型                  | 说明                           |
| ----------------- | --------------------- | ------------------------------ |
| 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 已提交
426 427 428

网络注册状态。

Z
zengyawen 已提交
429 430 431 432 433 434 435 436 437
| 变量                          | 值   | 说明                       |
| ----------------------------- | ---- | -------------------------- |
| 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 已提交
438 439 440

非独立组网状态。

Z
zengyawen 已提交
441 442 443 444 445 446 447 448 449 450 451
| 变量                       | 值   | 说明                                                       |
| -------------------------- | ---- | ---------------------------------------------------------- |
| 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 已提交
452 453 454

选网模式。

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