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