1# @ohos.telephony.observer (observer) 2 3本模块提供订阅管理功能,可以订阅/取消订阅的事件包括:网络状态变化、信号状态变化、通话状态变化、蜂窝数据链路连接状态、蜂窝数据业务的上下行数据流状态、SIM状态变化。 4 5>**说明:** 6> 7>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9 10## 导入模块 11 12```ts 13import { observer } from '@kit.TelephonyKit'; 14``` 15 16## NetworkState 17 18type NetworkState = radio.NetworkState 19 20网络注册状态。 21 22**系统能力**:SystemCapability.Telephony.StateRegistry 23 24| 类型 | 说明 | 25| ---------------- | --------------------------- | 26| [radio.NetworkState](js-apis-radio.md#networkstate) | 网络注册状态。 | 27 28## SignalInformation 29 30type SignalInformation = radio.SignalInformation 31 32网络信号强度信息对象。 33 34**系统能力**:SystemCapability.Telephony.StateRegistry 35 36| 类型 | 说明 | 37| ---------------- | --------------------------- | 38| [radio.SignalInformation](js-apis-radio.md#signalinformation) | 网络信号强度信息对象。 | 39 40 41## CellInformation 42 43type CellInformation = radio.CellInformation 44 45小区信息。 46 47**系统能力**:SystemCapability.Telephony.StateRegistry 48 49| 类型 | 说明 | 50| ---------------- | --------------------------- | 51| [radio.CellInformation](js-apis-radio.md#cellinformation8) | 小区信息。 | 52 53 54## DataConnectState 55 56type DataConnectState = data.DataConnectState 57 58描述蜂窝数据链路连接状态。 59 60**系统能力**:SystemCapability.Telephony.StateRegistry 61 62| 类型 | 说明 | 63| ---------------- | --------------------------- | 64| [data.DataConnectState](js-apis-telephony-data.md#dataconnectstate) | 描述蜂窝数据链路连接状态。 | 65 66 67## RatType 68 69type RatType = radio.RadioTechnology 70 71无线接入技术。 72 73**系统能力**:SystemCapability.Telephony.StateRegistry 74 75| 类型 | 说明 | 76| ---------------- | --------------------------- | 77| [radio.RadioTechnology](js-apis-radio.md#radiotechnology) | 无线接入技术。 | 78 79 80## DataFlowType 81 82type DataFlowType = data.DataFlowType 83 84描述蜂窝数据流类型。 85 86**系统能力**:SystemCapability.Telephony.StateRegistry 87 88| 类型 | 说明 | 89| ---------------- | --------------------------- | 90| [data.DataFlowType](js-apis-telephony-data.md#dataflowtype) | 描述蜂窝数据流类型。 | 91 92 93## CallState 94 95type CallState = call.CallState 96 97通话状态码。 98 99**系统能力**:SystemCapability.Telephony.StateRegistry 100 101| 类型 | 说明 | 102| ---------------- | --------------------------- | 103| [call.CallState](js-apis-call.md#callstate) | 通话状态码。 | 104 105 106## CardType 107 108type CardType = sim.CardType 109 110卡类型。 111 112**系统能力**:SystemCapability.Telephony.StateRegistry 113 114| 类型 | 说明 | 115| ---------------- | --------------------------- | 116| [sim.CardType](js-apis-sim.md#cardtype7) | 卡类型。 | 117 118 119## SimState 120 121type SimState = sim.SimState 122 123SIM卡状态。 124 125**系统能力**:SystemCapability.Telephony.StateRegistry 126 127| 类型 | 说明 | 128| ---------------- | --------------------------- | 129| [sim.SimState](js-apis-sim.md#simstate) | SIM卡状态。 | 130 131 132## observer.on('networkStateChange') 133 134on\(type: \'networkStateChange\', callback: Callback\<NetworkState\>\): void 135 136订阅网络状态变化事件,使用callback方式作为异步方法。 137 138**需要权限**:ohos.permission.GET_NETWORK_INFO 139 140**系统能力**:SystemCapability.Telephony.StateRegistry 141 142**参数:** 143 144| 参数名 | 类型 | 必填 | 说明 | 145| -------- | --------------------------------------------------------- | ---- | ---------------------------------------------------------------- | 146| type | string | 是 | 网络状态变化事件,参数固定为'networkStateChange'。 | 147| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 是 | 以callback形式异步返回结果。参考radio的[NetworkState](js-apis-radio.md#networkstate)。| 148 149**错误码:** 150 151以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 152 153| 错误码ID | 错误信息 | 154| -------- | -------------------------------------------- | 155| 201 | Permission denied. | 156| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 157| 8300001 | Invalid parameter value. | 158| 8300002 | Service connection failed. | 159| 8300003 | System internal error. | 160| 8300999 | Unknown error. | 161 162**示例:** 163 164```ts 165observer.on('networkStateChange', (data: observer.NetworkState) => { 166 console.log("on networkStateChange, data:" + JSON.stringify(data)); 167}); 168``` 169 170 171## observer.on('networkStateChange') 172 173on\(type: \'networkStateChange\', options: ObserverOptions, callback: Callback\<NetworkState\>\): void 174 175订阅指定卡槽位的网络状态变化事件,使用callback方式作为异步方法。 176 177**需要权限**:ohos.permission.GET_NETWORK_INFO 178 179**系统能力**:SystemCapability.Telephony.StateRegistry 180 181**参数:** 182 183| 参数名 | 类型 | 必填 | 说明 | 184| -------- | --------------------------------------------------------- | ---- | ---------------------------------------------------------------- | 185| type | string | 是 | 网络状态变化事件,参数固定为'networkStateChange'。 | 186| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 187| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 是 | 以callback形式异步返回结果,参考radio的[NetworkState](js-apis-radio.md#networkstate)。 | 188 189**错误码:** 190 191以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 192 193| 错误码ID | 错误信息 | 194| -------- | -------------------------------------------- | 195| 201 | Permission denied. | 196| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 197| 8300001 | Invalid parameter value. | 198| 8300002 | Service connection failed. | 199| 8300003 | System internal error. | 200| 8300999 | Unknown error. | 201 202**示例:** 203 204```ts 205let options: observer.ObserverOptions = { 206 slotId: 0 207} 208observer.on('networkStateChange', options, (data: observer.NetworkState) => { 209 console.log("on networkStateChange, data:" + JSON.stringify(data)); 210}); 211``` 212 213 214## observer.off('networkStateChange') 215 216off\(type: \'networkStateChange\', callback?: Callback\<NetworkState\>\): void 217 218取消订阅网络状态变化事件,使用callback方式作为异步方法。 219 220>**说明:** 221> 222>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 223 224**系统能力**:SystemCapability.Telephony.StateRegistry 225 226**参数:** 227 228| 参数名 | 类型 | 必填 | 说明 | 229| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ | 230| type | string | 是 | 网络状态变化事件,参数固定为'networkStateChange'。 | 231| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 否 | 以callback形式异步返回结果,参考radio的[NetworkState](js-apis-radio.md#networkstate)。 | 232 233**错误码:** 234 235以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 236 237| 错误码ID | 错误信息 | 238| -------- | -------------------------------------------- | 239| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 240| 8300001 | Invalid parameter value. | 241| 8300002 | Service connection failed. | 242| 8300003 | System internal error. | 243| 8300999 | Unknown error. | 244 245**示例:** 246 247```ts 248let callback: (data: observer.NetworkState) => void = (data: observer.NetworkState) => { 249 console.log("on networkStateChange, data:" + JSON.stringify(data)); 250} 251observer.on('networkStateChange', callback); 252// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 253observer.off('networkStateChange', callback); 254observer.off('networkStateChange'); 255``` 256 257## observer.on('signalInfoChange') 258 259on\(type: \'signalInfoChange\', callback: Callback\<Array\<SignalInformation\>\>): void 260 261订阅信号状态变化事件,使用callback方式作为异步方法。 262 263**系统能力**:SystemCapability.Telephony.StateRegistry 264 265**参数:** 266 267| 参数名 | 类型 | 必填 | 说明 | 268| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 269| type | string | 是 | 信号状态变化事件,参数固定为'signalInfoChange'。 | 270| callback | Callback\<Array\<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 是 | 以callback形式异步返回结果,参考radio的[SignalInformation](js-apis-radio.md#signalinformation)。 | 271 272**错误码:** 273 274以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 275 276| 错误码ID | 错误信息 | 277| -------- | -------------------------------------------- | 278| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 279| 8300001 | Invalid parameter value. | 280| 8300002 | Service connection failed. | 281| 8300003 | System internal error. | 282| 8300999 | Unknown error. | 283 284**示例:** 285 286```ts 287import { radio } from '@kit.TelephonyKit'; 288 289observer.on('signalInfoChange', (data: Array<radio.SignalInformation>) => { 290 console.log("on signalInfoChange, data:" + JSON.stringify(data)); 291}); 292``` 293 294 295## observer.on('signalInfoChange') 296 297on\(type: \'signalInfoChange\', options: ObserverOptions, callback: Callback\<Array\<SignalInformation\>\>): void 298 299订阅指定卡槽位的信号状态变化事件,使用callback方式作为异步方法。 300 301**系统能力**:SystemCapability.Telephony.StateRegistry 302 303**参数:** 304 305| 参数名 | 类型 | 必填 | 说明 | 306| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 307| type | string | 是 | 信号状态变化事件,参数固定为'signalInfoChange'。 | 308| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 309| callback | Callback\<Array\<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 是 | 以callback形式异步返回结果,参考radio的[SignalInformation](js-apis-radio.md#signalinformation)。 | 310 311**错误码:** 312 313以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 314 315| 错误码ID | 错误信息 | 316| -------- | -------------------------------------------- | 317| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 318| 8300001 | Invalid parameter value. | 319| 8300002 | Service connection failed. | 320| 8300003 | System internal error. | 321| 8300999 | Unknown error. | 322 323**示例:** 324 325```ts 326import { radio } from '@kit.TelephonyKit'; 327 328let options: observer.ObserverOptions = { 329 slotId: 0 330} 331observer.on('signalInfoChange', options, (data: Array<radio.SignalInformation>) => { 332 console.log("on signalInfoChange, data:" + JSON.stringify(data)); 333}); 334``` 335 336 337## observer.off('signalInfoChange') 338 339off\(type: \'signalInfoChange\', callback?: Callback\<Array\<SignalInformation\>\>): void 340 341取消订阅信号状态变化事件,使用callback方式作为异步方法。 342 343>**说明:** 344> 345>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 346 347**系统能力**:SystemCapability.Telephony.StateRegistry 348 349**参数:** 350 351| 参数名 | 类型 | 必填 | 说明 | 352| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 353| type | string | 是 | 信号状态变化事件,参数固定为'signalInfoChange'。 | 354| callback | Callback\<Array\<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 否 | 以callback形式异步返回结果,参考radio的[SignalInformation](js-apis-radio.md#signalinformation)。 | 355 356**错误码:** 357 358以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 359 360| 错误码ID | 错误信息 | 361| -------- | -------------------------------------------- | 362| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 363| 8300001 | Invalid parameter value. | 364| 8300002 | Service connection failed. | 365| 8300003 | System internal error. | 366| 8300999 | Unknown error. | 367 368**示例:** 369 370```ts 371import { radio } from '@kit.TelephonyKit'; 372 373let callback: (data: Array<radio.SignalInformation>) => void = (data: Array<radio.SignalInformation>) => { 374 console.log("on signalInfoChange, data:" + JSON.stringify(data)); 375} 376observer.on('signalInfoChange', callback); 377// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 378observer.off('signalInfoChange', callback); 379observer.off('signalInfoChange'); 380``` 381 382 383## observer.on('callStateChange') 384 385on(type: 'callStateChange', callback: Callback\<CallStateInfo\>): void 386 387订阅通话状态变化事件,使用callback方式作为异步方法。 388 389>**说明:** 390> 391>获取电话号码时需要ohos.permission.READ_CALL_LOG权限,该权限为系统权限。 392 393**系统能力**:SystemCapability.Telephony.StateRegistry 394 395**参数:** 396 397| 参数名 | 类型 | 必填 | 说明 | 398| -------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 399| type | string | 是 | 通话状态变化事件,参数固定为'callStateChange'。 | 400| callback | Callback\<[CallStateInfo](#callstateinfo11)\> | 是 | 以callback形式异步返回结果,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码。 | 401 402**错误码:** 403 404以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 405 406| 错误码ID | 错误信息 | 407| -------- | -------------------------------------------- | 408| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 409| 8300001 | Invalid parameter value. | 410| 8300002 | Service connection failed. | 411| 8300003 | System internal error. | 412| 8300999 | Unknown error. | 413 414**示例:** 415 416```ts 417observer.on('callStateChange', (data: observer.CallStateInfo) => { 418 console.log("on callStateChange, data:" + JSON.stringify(data)); 419}); 420``` 421 422 423## observer.on('callStateChange') 424 425on(type: 'callStateChange', options: ObserverOptions, callback: Callback\<CallStateInfo\>): void 426 427订阅通话状态变化事件,使用callback方式作为异步方法。 428 429>**说明:** 430> 431>获取电话号码时需要ohos.permission.READ_CALL_LOG权限,该权限为系统权限。 432 433**系统能力**:SystemCapability.Telephony.StateRegistry 434 435**参数:** 436 437| 参数名 | 类型 | 必填 | 说明 | 438| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 439| type | string | 是 | 通话状态变化事件,参数固定为'callStateChange'。 | 440| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 441| callback | Callback\<[CallStateInfo](#callstateinfo11)\> | 是 | 以callback形式异步返回结果,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码。 | 442 443**错误码:** 444 445以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 446 447| 错误码ID | 错误信息 | 448| -------- | -------------------------------------------- | 449| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 450| 8300001 | Invalid parameter value. | 451| 8300002 | Service connection failed. | 452| 8300003 | System internal error. | 453| 8300999 | Unknown error. | 454 455**示例:** 456 457```ts 458let options: observer.ObserverOptions = { 459 slotId: 0 460} 461observer.on('callStateChange', options, (data: observer.CallStateInfo) => { 462 console.log("on callStateChange, data:" + JSON.stringify(data)); 463}); 464``` 465 466 467## observer.off('callStateChange') 468 469off(type: 'callStateChange', callback?: Callback\<CallStateInfo\>): void 470 471取消订阅通话状态变化事件,使用callback方式作为异步方法。 472 473>**说明:** 474> 475>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 476 477**系统能力**:SystemCapability.Telephony.StateRegistry 478 479**参数:** 480 481| 参数名 | 类型 | 必填 | 说明 | 482| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 483| type | string | 是 | 通话状态变化事件,参数固定为'callStateChange'。 | 484| callback | Callback\<[CallStateInfo](#callstateinfo11)\> | 否 | 以callback形式异步返回结果,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码。 | 485 486**错误码:** 487 488以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 489 490| 错误码ID | 错误信息 | 491| -------- | -------------------------------------------- | 492| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 493| 8300001 | Invalid parameter value. | 494| 8300002 | Service connection failed. | 495| 8300003 | System internal error. | 496| 8300999 | Unknown error. | 497 498**示例:** 499 500```ts 501let callback: (data: observer.CallStateInfo) => void = (data: observer.CallStateInfo) => { 502 console.log("on callStateChange, data:" + JSON.stringify(data)); 503} 504observer.on('callStateChange', callback); 505// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 506observer.off('callStateChange', callback); 507observer.off('callStateChange'); 508``` 509 510 511## observer.on('cellularDataConnectionStateChange')<sup>7+</sup> 512 513on\(type: 'cellularDataConnectionStateChange', callback: Callback\<DataConnectionStateInfo\>\): void 514 515订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。 516 517**系统能力**:SystemCapability.Telephony.StateRegistry 518 519**参数:** 520 521| 参数名 | 类型 | 必填 | 说明 | 522| -------- | --------------------------------- | ---- | -------------------------------------------------------------------- | 523| type | string | 是 | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。| 524| callback | Callback\<[DataConnectionStateInfo](#dataconnectionstateinfo11)\> | 是 | 以callback形式异步返回结果,参考data的[DataConnectState](js-apis-telephony-data.md#dataconnectstate),radio的[RadioTechnology](js-apis-radio.md#radiotechnology)。 | 525 526**错误码:** 527 528以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 529 530| 错误码ID | 错误信息 | 531| -------- | -------------------------------------------- | 532| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 533| 8300001 | Invalid parameter value. | 534| 8300002 | Service connection failed. | 535| 8300003 | System internal error. | 536| 8300999 | Unknown error. | 537 538**示例:** 539 540```ts 541observer.on('cellularDataConnectionStateChange', (data: observer.DataConnectionStateInfo) => { 542 console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data)); 543}); 544``` 545 546 547## observer.on('cellularDataConnectionStateChange')<sup>7+</sup> 548 549on\(type: 'cellularDataConnectionStateChange', options: ObserverOptions, callback: Callback\<DataConnectionStateInfo\>\): void 550 551订阅指定卡槽位的蜂窝数据链路连接状态,使用callback方式作为异步方法。 552 553**系统能力**:SystemCapability.Telephony.StateRegistry 554 555**参数:** 556 557| 参数名 | 类型 | 必填 | 说明 | 558| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 559| type | string | 是 | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。| 560| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 561| callback | Callback\<[DataConnectionStateInfo](#dataconnectionstateinfo11)\> | 是 | 以callback形式异步返回结果,参考data的[DataConnectState](js-apis-telephony-data.md#dataconnectstate),radio的[RadioTechnology](js-apis-radio.md#radiotechnology)。 | 562 563**错误码:** 564 565以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 566 567| 错误码ID | 错误信息 | 568| -------- | -------------------------------------------- | 569| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 570| 8300001 | Invalid parameter value. | 571| 8300002 | Service connection failed. | 572| 8300003 | System internal error. | 573| 8300999 | Unknown error. | 574 575**示例:** 576 577```ts 578let options: observer.ObserverOptions = { 579 slotId: 0 580} 581observer.on('cellularDataConnectionStateChange', options, (data: observer.DataConnectionStateInfo) => { 582 console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data)); 583}); 584``` 585 586 587## observer.off('cellularDataConnectionStateChange')<sup>7+</sup> 588 589off\(type: 'cellularDataConnectionStateChange', callback?: Callback\<DataConnectionStateInfo\>\): void 590 591移除订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。 592 593>**说明:** 594> 595>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 596 597**系统能力**:SystemCapability.Telephony.StateRegistry 598 599**参数:** 600 601| 参数名 | 类型 | 必填 | 说明 | 602| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 603| type | string | 是 | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。| 604| callback | Callback\<[DataConnectionStateInfo](#dataconnectionstateinfo11)\> | 否 | 以callback形式异步返回结果,参考data的[DataConnectState](js-apis-telephony-data.md#dataconnectstate),radio的[RadioTechnology](js-apis-radio.md#radiotechnology)。 | 605 606**错误码:** 607 608以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 609 610| 错误码ID | 错误信息 | 611| -------- | -------------------------------------------- | 612| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 613| 8300001 | Invalid parameter value. | 614| 8300002 | Service connection failed. | 615| 8300003 | System internal error. | 616| 8300999 | Unknown error. | 617 618**示例:** 619 620```ts 621let callback: (data: observer.DataConnectionStateInfo) => void = (data: observer.DataConnectionStateInfo) => { 622 console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data)); 623} 624observer.on('cellularDataConnectionStateChange', callback); 625// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 626observer.off('cellularDataConnectionStateChange', callback); 627observer.off('cellularDataConnectionStateChange'); 628``` 629 630 631## observer.on('cellularDataFlowChange')<sup>7+</sup> 632 633on\(type: 'cellularDataFlowChange', callback: Callback\<DataFlowType\>\): void 634 635订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。 636 637**系统能力**:SystemCapability.Telephony.StateRegistry 638 639**参数:** 640 641| 参数名 | 类型 | 必填 | 说明 | 642| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 643| type | string | 是 | 蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。 | 644| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是 | 以callback形式异步返回结果,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 | 645 646**错误码:** 647 648以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 649 650| 错误码ID | 错误信息 | 651| -------- | -------------------------------------------- | 652| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 653| 8300001 | Invalid parameter value. | 654| 8300002 | Service connection failed. | 655| 8300003 | System internal error. | 656| 8300999 | Unknown error. | 657 658**示例:** 659 660```ts 661import { data } from '@kit.TelephonyKit'; 662 663observer.on('cellularDataFlowChange', (data: data.DataFlowType) => { 664 console.log("on cellularDataFlowChange, data:" + JSON.stringify(data)); 665}); 666``` 667 668 669## observer.on('cellularDataFlowChange')<sup>7+</sup> 670 671on\(type: 'cellularDataFlowChange', options: ObserverOptions, callback: Callback\<DataFlowType\>\): void 672 673订阅指定卡槽位的蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。 674 675**系统能力**:SystemCapability.Telephony.StateRegistry 676 677**参数:** 678 679| 参数名 | 类型 | 必填 | 说明 | 680| -------- | ---------------------------------------------------------- | ---- | ------------------------------------------------------------ | 681| type | string | 是 | 蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。 | 682| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 683| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是 | 以callback形式异步返回结果,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 | 684 685**错误码:** 686 687以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 688 689| 错误码ID | 错误信息 | 690| -------- | -------------------------------------------- | 691| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 692| 8300001 | Invalid parameter value. | 693| 8300002 | Service connection failed. | 694| 8300003 | System internal error. | 695| 8300999 | Unknown error. | 696 697**示例:** 698 699```ts 700import { data } from '@kit.TelephonyKit'; 701 702let options: observer.ObserverOptions = { 703 slotId: 0 704} 705observer.on('cellularDataFlowChange', options, (data: data.DataFlowType) => { 706 console.log("on cellularDataFlowChange, data:" + JSON.stringify(data)); 707}); 708``` 709 710 711## observer.off('cellularDataFlowChange')<sup>7+</sup> 712 713off\(type: 'cellularDataFlowChange', callback?: Callback\<DataFlowType\>\): void 714 715移除订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。 716 717>**说明:** 718> 719>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 720 721**系统能力**:SystemCapability.Telephony.StateRegistry 722 723**参数:** 724 725| 参数名 | 类型 | 必填 | 说明 | 726| -------- | ------------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 727| type | string | 是 | 蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。 | 728| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 否 | 以callback形式异步返回结果,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 | 729 730**错误码:** 731 732以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 733 734| 错误码ID | 错误信息 | 735| -------- | -------------------------------------------- | 736| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 737| 8300001 | Invalid parameter value. | 738| 8300002 | Service connection failed. | 739| 8300003 | System internal error. | 740| 8300999 | Unknown error. | 741 742**示例:** 743 744```ts 745import { data } from '@kit.TelephonyKit'; 746 747let callback: (data: data.DataFlowType) => void = (data: data.DataFlowType) => { 748 console.log("on cellularDataFlowChange, data:" + JSON.stringify(data)); 749} 750observer.on('cellularDataFlowChange', callback); 751// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 752observer.off('cellularDataFlowChange', callback); 753observer.off('cellularDataFlowChange'); 754``` 755 756 757## observer.on('simStateChange')<sup>7+</sup> 758 759on\(type: 'simStateChange', callback: Callback\<SimStateData\>\): void 760 761订阅sim状态更改事件,使用callback方式作为异步方法。 762 763**系统能力**:SystemCapability.Telephony.StateRegistry 764 765**参数:** 766 767| 参数名 | 类型 | 必填 | 说明 | 768| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 769| type | string | 是 | sim状态更改事件,参数固定为'simStateChange'。 | 770| callback | Callback\<[SimStateData](#simstatedata7)\> | 是 | 以callback形式异步返回结果。 | 771 772**错误码:** 773 774以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 775 776| 错误码ID | 错误信息 | 777| -------- | -------------------------------------------- | 778| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 779| 8300001 | Invalid parameter value. | 780| 8300002 | Service connection failed. | 781| 8300003 | System internal error. | 782| 8300999 | Unknown error. | 783 784**示例:** 785 786```ts 787observer.on('simStateChange', (data: observer.SimStateData) => { 788 console.log("on simStateChange, data:" + JSON.stringify(data)); 789}); 790``` 791 792 793## observer.on('simStateChange')<sup>7+</sup> 794 795on\(type: 'simStateChange', options: ObserverOptions, callback: Callback\<SimStateData\>\): void 796 797订阅指定卡槽位的sim状态更改事件,使用callback方式作为异步方法。 798 799**系统能力**:SystemCapability.Telephony.StateRegistry 800 801**参数:** 802 803| 参数名 | 类型 | 必填 | 说明 | 804| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 805| type | string | 是 | sim状态更改事件,参数固定为'simStateChange'。 | 806| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 807| callback | Callback\<[SimStateData](#simstatedata7)\> | 是 | 以callback形式异步返回结果。 | 808 809**错误码:** 810 811以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 812 813| 错误码ID | 错误信息 | 814| -------- | -------------------------------------------- | 815| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 816| 8300001 | Invalid parameter value. | 817| 8300002 | Service connection failed. | 818| 8300003 | System internal error. | 819| 8300999 | Unknown error. | 820 821**示例:** 822 823```ts 824let options: observer.ObserverOptions = { 825 slotId: 0 826} 827observer.on('simStateChange', options, (data: observer.SimStateData) => { 828 console.log("on simStateChange, data:" + JSON.stringify(data)); 829}); 830``` 831 832 833## observer.off('simStateChange')<sup>7+</sup> 834 835off\(type: 'simStateChange', callback?: Callback\<SimStateData\>\): void 836 837移除订阅sim状态更改事件,使用callback方式作为异步方法。 838 839>**说明:** 840> 841>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 842 843**系统能力**:SystemCapability.Telephony.StateRegistry 844 845**参数:** 846 847| 参数名 | 类型 | 必填 | 说明 | 848| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 849| type | string | 是 | sim状态更改事件,参数固定为'simStateChange'。 | 850| callback | Callback\<[SimStateData](#simstatedata7)\> | 否 | 以callback形式异步返回结果。 | 851 852**错误码:** 853 854以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 855 856| 错误码ID | 错误信息 | 857| -------- | -------------------------------------------- | 858| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 859| 8300001 | Invalid parameter value. | 860| 8300002 | Service connection failed. | 861| 8300003 | System internal error. | 862| 8300999 | Unknown error. | 863 864**示例:** 865 866```ts 867let callback: (data: observer.SimStateData) => void = (data: observer.SimStateData) => { 868 console.log("on simStateChange, data:" + JSON.stringify(data)); 869} 870observer.on('simStateChange', callback); 871// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 872observer.off('simStateChange', callback); 873observer.off('simStateChange'); 874``` 875 876## observer.on('iccAccountInfoChange')<sup>10+</sup> 877 878on\(type: 'iccAccountInfoChange', callback: Callback\<void\>\): void 879 880订阅卡帐户变化事件,使用callback方式作为异步方法。 881 882**系统能力**:SystemCapability.Telephony.StateRegistry 883 884**参数:** 885 886| 参数名 | 类型 | 必填 | 说明 | 887| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 888| type | string | 是 | 卡帐户变化事件,参数固定为'iccAccountInfoChange'。 | 889| callback | Callback\<void\> | 是 | 以callback形式异步返回结果。 | 890 891**错误码:** 892 893以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 894 895| 错误码ID | 错误信息 | 896| -------- | -------------------------------------------- | 897| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 898| 8300001 | Invalid parameter value. | 899| 8300002 | Service connection failed. | 900| 8300003 | System internal error. | 901| 8300999 | Unknown error. | 902 903**示例:** 904 905```ts 906observer.on('iccAccountInfoChange', () => { 907 console.log("on iccAccountInfoChange success"); 908}); 909``` 910 911 912## observer.off('iccAccountInfoChange')<sup>10+</sup> 913 914off\(type: 'iccAccountInfoChange', callback?: Callback\<void\>\): void 915 916移除订阅卡帐户变化事件,使用callback方式作为异步方法。 917 918>**说明:** 919> 920>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 921 922**系统能力**:SystemCapability.Telephony.StateRegistry 923 924**参数:** 925 926| 参数名 | 类型 | 必填 | 说明 | 927| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 928| type | string | 是 | 卡帐户变化事件,参数固定为'iccAccountInfoChange'。 | 929| callback | Callback\<void\> | 否 | 以callback形式异步返回结果。 | 930 931**错误码:** 932 933以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 934 935| 错误码ID | 错误信息 | 936| -------- | -------------------------------------------- | 937| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 938| 8300001 | Invalid parameter value. | 939| 8300002 | Service connection failed. | 940| 8300003 | System internal error. | 941| 8300999 | Unknown error. | 942 943**示例:** 944 945```ts 946let callback: () => void = () => { 947 console.log("on iccAccountInfoChange success"); 948} 949observer.on('iccAccountInfoChange', callback); 950// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 951observer.off('iccAccountInfoChange', callback); 952observer.off('iccAccountInfoChange'); 953``` 954 955 956## LockReason<sup>8+</sup> 957 958SIM卡锁类型。 959 960**系统能力**:SystemCapability.Telephony.StateRegistry 961 962| 名称 | 值 | 说明 | 963| ----------- | ---- | ----------------- | 964| SIM_NONE | 0 | 无锁。 | 965| SIM_PIN | 1 | PIN锁。 | 966| SIM_PUK | 2 | PUK锁。 | 967| SIM_PN_PIN | 3 | 网络PIN锁。 | 968| SIM_PN_PUK | 4 | 网络PUK锁。 | 969| SIM_PU_PIN | 5 | 子网PIN锁。 | 970| SIM_PU_PUK | 6 | 子网PUK锁。 | 971| SIM_PP_PIN | 7 | 服务提供商PIN锁。 | 972| SIM_PP_PUK | 8 | 服务提供商PUK锁。 | 973| SIM_PC_PIN | 9 | 组织PIN锁。 | 974| SIM_PC_PUK | 10 | 组织PUK锁。 | 975| SIM_SIM_PIN | 11 | SIM PIN锁。 | 976| SIM_SIM_PUK | 12 | SIM PUK锁。 | 977 978 979## SimStateData<sup>7+</sup> 980 981SIM卡类型和状态。 982 983**系统能力**:SystemCapability.Telephony.StateRegistry 984 985| 名称 | 类型 | 必填 | 说明 | 986| ------------------- | ----------------------------------- | ---- | -------------------------------------------------------- | 987| type | [CardType](js-apis-sim.md#cardtype7) | 是 | SIM卡类型。 | 988| state | [SimState](js-apis-sim.md#simstate) | 是 | SIM卡状态。 | 989| reason<sup>8+</sup> | [LockReason](#lockreason8) | 是 | SIM卡锁类型。 | 990 991 992## CallStateInfo<sup>11+</sup> 993 994通话状态相关信息。 995 996**系统能力**:SystemCapability.Telephony.StateRegistry 997 998| 名称 | 类型 | 必填 | 说明 | 999| ------------------- | -------------------------------------- | ---- | -------- | 1000| state | [CallState](js-apis-call.md#callstate) | 是 | 通话类型。 | 1001| number | string | 是 | 电话号码。 | 1002 1003 1004## DataConnectionStateInfo<sup>11+</sup> 1005 1006数据连接状态相关信息。 1007 1008**系统能力**:SystemCapability.Telephony.StateRegistry 1009 1010| 名称 | 类型 | 必填 | 说明 | 1011| ------------------- | ---------------------------------------------------------------| ---- | ------------ | 1012| state | [DataConnectState](js-apis-telephony-data.md#dataconnectstate) | 是 | 数据连接状态。 | 1013| network | [RatType](js-apis-radio.md#radiotechnology) | 是 | 网络类型。 | 1014 1015 1016## ObserverOptions<sup>11+</sup> 1017 1018电话相关事件订阅参数可选项。 1019 1020**系统能力**:SystemCapability.Telephony.StateRegistry 1021 1022| 名称 | 类型 | 必填 | 说明 | 1023| ------------------- | ------------------| ---- | --------------------------------------- | 1024| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 | 1025 1026