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**系统能力**:SystemCapability.Telephony.StateRegistry 377 378**参数:** 379 380| 参数名 | 类型 | 必填 | 说明 | 381| -------- | --------------------------------------------- | ---- | ----------------------------------------------------------- | 382| type | string | 是 | 通话状态变化事件,参数固定为'callStateChange'。 | 383| callback | Callback\<[CallStateInfo](#callstateinfo11)\> | 是 | 以callback形式异步返回结果。<br/>应用可获取到CallStateInfo。<br/>其中,三方应用仅能获取state通话状态。number受系统权限管控,仅面向系统应用开放。 | 384 385**错误码:** 386 387以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 388 389| 错误码ID | 错误信息 | 390| -------- | -------------------------------------------- | 391| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 392| 8300001 | Invalid parameter value. | 393| 8300002 | Service connection failed. | 394| 8300003 | System internal error. | 395| 8300999 | Unknown error. | 396 397**示例:** 398 399```ts 400observer.on('callStateChange', (data: observer.CallStateInfo) => { 401 console.log("on callStateChange, data:" + JSON.stringify(data)); 402}); 403``` 404 405 406## observer.on('callStateChange') 407 408on(type: 'callStateChange', options: ObserverOptions, callback: Callback\<CallStateInfo\>): void 409 410订阅通话状态变化事件,使用callback方式作为异步方法。 411 412**系统能力**:SystemCapability.Telephony.StateRegistry 413 414**参数:** 415 416| 参数名 | 类型 | 必填 | 说明 | 417| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 418| type | string | 是 | 通话状态变化事件,参数固定为'callStateChange'。 | 419| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 420| callback | Callback\<[CallStateInfo](#callstateinfo11)\> | 是 | 以callback形式异步返回结果。<br/>应用可获取到CallStateInfo。<br/>其中,三方应用仅能获取state通话状态。number受系统权限管控,仅面向系统应用开放。 | 421 422**错误码:** 423 424以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 425 426| 错误码ID | 错误信息 | 427| -------- | -------------------------------------------- | 428| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 429| 8300001 | Invalid parameter value. | 430| 8300002 | Service connection failed. | 431| 8300003 | System internal error. | 432| 8300999 | Unknown error. | 433 434**示例:** 435 436```ts 437let options: observer.ObserverOptions = { 438 slotId: 0 439} 440observer.on('callStateChange', options, (data: observer.CallStateInfo) => { 441 console.log("on callStateChange, data:" + JSON.stringify(data)); 442}); 443``` 444 445 446## observer.off('callStateChange') 447 448off(type: 'callStateChange', callback?: Callback\<CallStateInfo\>): void 449 450取消订阅通话状态变化事件,使用callback方式作为异步方法。 451 452> **说明:** 453> 454> 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 455 456**系统能力**:SystemCapability.Telephony.StateRegistry 457 458**参数:** 459 460| 参数名 | 类型 | 必填 | 说明 | 461| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 462| type | string | 是 | 通话状态变化事件,参数固定为'callStateChange'。 | 463| callback | Callback\<[CallStateInfo](#callstateinfo11)\> | 否 | 以callback形式异步返回结果,参考call的[CallState](js-apis-call.md#callstate)。<br />number:电话号码。 | 464 465**错误码:** 466 467以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 468 469| 错误码ID | 错误信息 | 470| -------- | -------------------------------------------- | 471| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 472| 8300001 | Invalid parameter value. | 473| 8300002 | Service connection failed. | 474| 8300003 | System internal error. | 475| 8300999 | Unknown error. | 476 477**示例:** 478 479```ts 480let callback: (data: observer.CallStateInfo) => void = (data: observer.CallStateInfo) => { 481 console.log("on callStateChange, data:" + JSON.stringify(data)); 482} 483observer.on('callStateChange', callback); 484// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 485observer.off('callStateChange', callback); 486observer.off('callStateChange'); 487``` 488 489 490## observer.on('cellularDataConnectionStateChange')<sup>7+</sup> 491 492on\(type: 'cellularDataConnectionStateChange', callback: Callback\<DataConnectionStateInfo\>\): void 493 494订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。 495 496**系统能力**:SystemCapability.Telephony.StateRegistry 497 498**参数:** 499 500| 参数名 | 类型 | 必填 | 说明 | 501| -------- | --------------------------------- | ---- | -------------------------------------------------------------------- | 502| type | string | 是 | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。| 503| callback | Callback\<[DataConnectionStateInfo](#dataconnectionstateinfo11)\> | 是 | 以callback形式异步返回结果,参考data的[DataConnectState](js-apis-telephony-data.md#dataconnectstate),radio的[RadioTechnology](js-apis-radio.md#radiotechnology)。 | 504 505**错误码:** 506 507以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 508 509| 错误码ID | 错误信息 | 510| -------- | -------------------------------------------- | 511| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 512| 8300001 | Invalid parameter value. | 513| 8300002 | Service connection failed. | 514| 8300003 | System internal error. | 515| 8300999 | Unknown error. | 516 517**示例:** 518 519```ts 520observer.on('cellularDataConnectionStateChange', (data: observer.DataConnectionStateInfo) => { 521 console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data)); 522}); 523``` 524 525 526## observer.on('cellularDataConnectionStateChange')<sup>7+</sup> 527 528on\(type: 'cellularDataConnectionStateChange', options: ObserverOptions, callback: Callback\<DataConnectionStateInfo\>\): void 529 530订阅指定卡槽位的蜂窝数据链路连接状态,使用callback方式作为异步方法。 531 532**系统能力**:SystemCapability.Telephony.StateRegistry 533 534**参数:** 535 536| 参数名 | 类型 | 必填 | 说明 | 537| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 538| type | string | 是 | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。| 539| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 540| callback | Callback\<[DataConnectionStateInfo](#dataconnectionstateinfo11)\> | 是 | 以callback形式异步返回结果,参考data的[DataConnectState](js-apis-telephony-data.md#dataconnectstate),radio的[RadioTechnology](js-apis-radio.md#radiotechnology)。 | 541 542**错误码:** 543 544以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 545 546| 错误码ID | 错误信息 | 547| -------- | -------------------------------------------- | 548| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 549| 8300001 | Invalid parameter value. | 550| 8300002 | Service connection failed. | 551| 8300003 | System internal error. | 552| 8300999 | Unknown error. | 553 554**示例:** 555 556```ts 557let options: observer.ObserverOptions = { 558 slotId: 0 559} 560observer.on('cellularDataConnectionStateChange', options, (data: observer.DataConnectionStateInfo) => { 561 console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data)); 562}); 563``` 564 565 566## observer.off('cellularDataConnectionStateChange')<sup>7+</sup> 567 568off\(type: 'cellularDataConnectionStateChange', callback?: Callback\<DataConnectionStateInfo\>\): void 569 570移除订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。 571 572> **说明:** 573> 574> 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 575 576**系统能力**:SystemCapability.Telephony.StateRegistry 577 578**参数:** 579 580| 参数名 | 类型 | 必填 | 说明 | 581| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 582| type | string | 是 | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。| 583| callback | Callback\<[DataConnectionStateInfo](#dataconnectionstateinfo11)\> | 否 | 以callback形式异步返回结果,参考data的[DataConnectState](js-apis-telephony-data.md#dataconnectstate),radio的[RadioTechnology](js-apis-radio.md#radiotechnology)。 | 584 585**错误码:** 586 587以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 588 589| 错误码ID | 错误信息 | 590| -------- | -------------------------------------------- | 591| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 592| 8300001 | Invalid parameter value. | 593| 8300002 | Service connection failed. | 594| 8300003 | System internal error. | 595| 8300999 | Unknown error. | 596 597**示例:** 598 599```ts 600let callback: (data: observer.DataConnectionStateInfo) => void = (data: observer.DataConnectionStateInfo) => { 601 console.log("on cellularDataConnectionStateChange, data:" + JSON.stringify(data)); 602} 603observer.on('cellularDataConnectionStateChange', callback); 604// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 605observer.off('cellularDataConnectionStateChange', callback); 606observer.off('cellularDataConnectionStateChange'); 607``` 608 609 610## observer.on('cellularDataFlowChange')<sup>7+</sup> 611 612on\(type: 'cellularDataFlowChange', callback: Callback\<DataFlowType\>\): void 613 614订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。 615 616**系统能力**:SystemCapability.Telephony.StateRegistry 617 618**参数:** 619 620| 参数名 | 类型 | 必填 | 说明 | 621| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 622| type | string | 是 | 蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。 | 623| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是 | 以callback形式异步返回结果,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 | 624 625**错误码:** 626 627以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 628 629| 错误码ID | 错误信息 | 630| -------- | -------------------------------------------- | 631| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 632| 8300001 | Invalid parameter value. | 633| 8300002 | Service connection failed. | 634| 8300003 | System internal error. | 635| 8300999 | Unknown error. | 636 637**示例:** 638 639```ts 640import { data } from '@kit.TelephonyKit'; 641 642observer.on('cellularDataFlowChange', (data: data.DataFlowType) => { 643 console.log("on cellularDataFlowChange, data:" + JSON.stringify(data)); 644}); 645``` 646 647 648## observer.on('cellularDataFlowChange')<sup>7+</sup> 649 650on\(type: 'cellularDataFlowChange', options: ObserverOptions, callback: Callback\<DataFlowType\>\): void 651 652订阅指定卡槽位的蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。 653 654**系统能力**:SystemCapability.Telephony.StateRegistry 655 656**参数:** 657 658| 参数名 | 类型 | 必填 | 说明 | 659| -------- | ---------------------------------------------------------- | ---- | ------------------------------------------------------------ | 660| type | string | 是 | 蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。 | 661| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 662| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是 | 以callback形式异步返回结果,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 | 663 664**错误码:** 665 666以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 667 668| 错误码ID | 错误信息 | 669| -------- | -------------------------------------------- | 670| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 671| 8300001 | Invalid parameter value. | 672| 8300002 | Service connection failed. | 673| 8300003 | System internal error. | 674| 8300999 | Unknown error. | 675 676**示例:** 677 678```ts 679import { data } from '@kit.TelephonyKit'; 680 681let options: observer.ObserverOptions = { 682 slotId: 0 683} 684observer.on('cellularDataFlowChange', options, (data: data.DataFlowType) => { 685 console.log("on cellularDataFlowChange, data:" + JSON.stringify(data)); 686}); 687``` 688 689 690## observer.off('cellularDataFlowChange')<sup>7+</sup> 691 692off\(type: 'cellularDataFlowChange', callback?: Callback\<DataFlowType\>\): void 693 694移除订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。 695 696> **说明:** 697> 698> 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 699 700**系统能力**:SystemCapability.Telephony.StateRegistry 701 702**参数:** 703 704| 参数名 | 类型 | 必填 | 说明 | 705| -------- | ------------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 706| type | string | 是 | 蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。 | 707| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 否 | 以callback形式异步返回结果,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 | 708 709**错误码:** 710 711以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 712 713| 错误码ID | 错误信息 | 714| -------- | -------------------------------------------- | 715| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 716| 8300001 | Invalid parameter value. | 717| 8300002 | Service connection failed. | 718| 8300003 | System internal error. | 719| 8300999 | Unknown error. | 720 721**示例:** 722 723```ts 724import { data } from '@kit.TelephonyKit'; 725 726let callback: (data: data.DataFlowType) => void = (data: data.DataFlowType) => { 727 console.log("on cellularDataFlowChange, data:" + JSON.stringify(data)); 728} 729observer.on('cellularDataFlowChange', callback); 730// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 731observer.off('cellularDataFlowChange', callback); 732observer.off('cellularDataFlowChange'); 733``` 734 735 736## observer.on('simStateChange')<sup>7+</sup> 737 738on\(type: 'simStateChange', callback: Callback\<SimStateData\>\): void 739 740订阅sim状态更改事件,使用callback方式作为异步方法。 741 742>**说明:** 743> 744> 此接口不包含sim卡的激活状态,具体请参见[sim.isSimActive](js-apis-sim.md#simissimactive7)接口。 745 746**系统能力**:SystemCapability.Telephony.StateRegistry 747 748**参数:** 749 750| 参数名 | 类型 | 必填 | 说明 | 751| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- | 752| type | string | 是 | sim状态更改事件,参数固定为'simStateChange'。 | 753| callback | Callback\<[SimStateData](#simstatedata7)\> | 是 | 以callback形式异步返回结果。 | 754 755**错误码:** 756 757以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 758 759| 错误码ID | 错误信息 | 760| -------- | -------------------------------------------- | 761| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 762| 8300001 | Invalid parameter value. | 763| 8300002 | Service connection failed. | 764| 8300003 | System internal error. | 765| 8300999 | Unknown error. | 766 767**示例:** 768 769```ts 770observer.on('simStateChange', (data: observer.SimStateData) => { 771 console.log("on simStateChange, data:" + JSON.stringify(data)); 772}); 773``` 774 775 776## observer.on('simStateChange')<sup>7+</sup> 777 778on\(type: 'simStateChange', options: ObserverOptions, callback: Callback\<SimStateData\>\): void 779 780订阅指定卡槽位的sim状态更改事件,使用callback方式作为异步方法。 781 782**系统能力**:SystemCapability.Telephony.StateRegistry 783 784**参数:** 785 786| 参数名 | 类型 | 必填 | 说明 | 787| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 788| type | string | 是 | sim状态更改事件,参数固定为'simStateChange'。 | 789| options | [ObserverOptions](#observeroptions11) | 是 | 电话相关事件订阅参数可选项。 | 790| callback | Callback\<[SimStateData](#simstatedata7)\> | 是 | 以callback形式异步返回结果。 | 791 792**错误码:** 793 794以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 795 796| 错误码ID | 错误信息 | 797| -------- | -------------------------------------------- | 798| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 799| 8300001 | Invalid parameter value. | 800| 8300002 | Service connection failed. | 801| 8300003 | System internal error. | 802| 8300999 | Unknown error. | 803 804**示例:** 805 806```ts 807let options: observer.ObserverOptions = { 808 slotId: 0 809} 810observer.on('simStateChange', options, (data: observer.SimStateData) => { 811 console.log("on simStateChange, data:" + JSON.stringify(data)); 812}); 813``` 814 815 816## observer.off('simStateChange')<sup>7+</sup> 817 818off\(type: 'simStateChange', callback?: Callback\<SimStateData\>\): void 819 820移除订阅sim状态更改事件,使用callback方式作为异步方法。 821 822> **说明:** 823> 824> 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 825 826**系统能力**:SystemCapability.Telephony.StateRegistry 827 828**参数:** 829 830| 参数名 | 类型 | 必填 | 说明 | 831| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 832| type | string | 是 | sim状态更改事件,参数固定为'simStateChange'。 | 833| callback | Callback\<[SimStateData](#simstatedata7)\> | 否 | 以callback形式异步返回结果。 | 834 835**错误码:** 836 837以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 838 839| 错误码ID | 错误信息 | 840| -------- | -------------------------------------------- | 841| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 842| 8300001 | Invalid parameter value. | 843| 8300002 | Service connection failed. | 844| 8300003 | System internal error. | 845| 8300999 | Unknown error. | 846 847**示例:** 848 849```ts 850let callback: (data: observer.SimStateData) => void = (data: observer.SimStateData) => { 851 console.log("on simStateChange, data:" + JSON.stringify(data)); 852} 853observer.on('simStateChange', callback); 854// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 855observer.off('simStateChange', callback); 856observer.off('simStateChange'); 857``` 858 859## observer.on('iccAccountInfoChange')<sup>10+</sup> 860 861on\(type: 'iccAccountInfoChange', callback: Callback\<void\>\): void 862 863订阅卡帐户变化事件,使用callback方式作为异步方法。 864 865**系统能力**:SystemCapability.Telephony.StateRegistry 866 867**参数:** 868 869| 参数名 | 类型 | 必填 | 说明 | 870| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 871| type | string | 是 | 卡帐户变化事件,参数固定为'iccAccountInfoChange'。 | 872| callback | Callback\<void\> | 是 | 以callback形式异步返回结果。 | 873 874**错误码:** 875 876以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 877 878| 错误码ID | 错误信息 | 879| -------- | -------------------------------------------- | 880| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 881| 8300001 | Invalid parameter value. | 882| 8300002 | Service connection failed. | 883| 8300003 | System internal error. | 884| 8300999 | Unknown error. | 885 886**示例:** 887 888```ts 889observer.on('iccAccountInfoChange', () => { 890 console.log("on iccAccountInfoChange success"); 891}); 892``` 893 894 895## observer.off('iccAccountInfoChange')<sup>10+</sup> 896 897off\(type: 'iccAccountInfoChange', callback?: Callback\<void\>\): void 898 899移除订阅卡帐户变化事件,使用callback方式作为异步方法。 900 901> **说明:** 902> 903> 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 904 905**系统能力**:SystemCapability.Telephony.StateRegistry 906 907**参数:** 908 909| 参数名 | 类型 | 必填 | 说明 | 910| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 911| type | string | 是 | 卡帐户变化事件,参数固定为'iccAccountInfoChange'。 | 912| callback | Callback\<void\> | 否 | 以callback形式异步返回结果。 | 913 914**错误码:** 915 916以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[ohos.telephony(电话子系统)错误码](errorcode-telephony.md)。 917 918| 错误码ID | 错误信息 | 919| -------- | -------------------------------------------- | 920| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types. | 921| 8300001 | Invalid parameter value. | 922| 8300002 | Service connection failed. | 923| 8300003 | System internal error. | 924| 8300999 | Unknown error. | 925 926**示例:** 927 928```ts 929let callback: () => void = () => { 930 console.log("on iccAccountInfoChange success"); 931} 932observer.on('iccAccountInfoChange', callback); 933// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。 934observer.off('iccAccountInfoChange', callback); 935observer.off('iccAccountInfoChange'); 936``` 937 938 939## LockReason<sup>8+</sup> 940 941SIM卡锁类型。 942 943**系统能力**:SystemCapability.Telephony.StateRegistry 944 945| 名称 | 值 | 说明 | 946| ----------- | ---- | ----------------- | 947| SIM_NONE | 0 | 无锁。 | 948| SIM_PIN | 1 | PIN锁。 | 949| SIM_PUK | 2 | PUK锁。 | 950| SIM_PN_PIN | 3 | 网络PIN锁。 | 951| SIM_PN_PUK | 4 | 网络PUK锁。 | 952| SIM_PU_PIN | 5 | 子网PIN锁。 | 953| SIM_PU_PUK | 6 | 子网PUK锁。 | 954| SIM_PP_PIN | 7 | 服务提供商PIN锁。 | 955| SIM_PP_PUK | 8 | 服务提供商PUK锁。 | 956| SIM_PC_PIN | 9 | 组织PIN锁。 | 957| SIM_PC_PUK | 10 | 组织PUK锁。 | 958| SIM_SIM_PIN | 11 | SIM PIN锁。 | 959| SIM_SIM_PUK | 12 | SIM PUK锁。 | 960 961 962## SimStateData<sup>7+</sup> 963 964SIM卡类型和状态。 965 966**系统能力**:SystemCapability.Telephony.StateRegistry 967 968| 名称 | 类型 | 必填 | 说明 | 969| ------------------- | ----------------------------------- | ---- | -------------------------------------------------------- | 970| type | [CardType](js-apis-sim.md#cardtype7) | 是 | SIM卡类型。 | 971| state | [SimState](js-apis-sim.md#simstate) | 是 | SIM卡状态。 | 972| reason<sup>8+</sup> | [LockReason](#lockreason8) | 是 | SIM卡锁类型。 | 973 974 975## CallStateInfo<sup>11+</sup> 976 977通话状态相关信息。 978 979**系统能力**:SystemCapability.Telephony.StateRegistry 980 981| 名称 | 类型 | 必填 | 说明 | 982| ------------------- | -------------------------------------- | ---- | -------- | 983| state | [CallState](js-apis-call.md#callstate) | 是 | 通话类型。 | 984| number | string | 是 | 电话号码。 | 985 986 987## DataConnectionStateInfo<sup>11+</sup> 988 989数据连接状态相关信息。 990 991**系统能力**:SystemCapability.Telephony.StateRegistry 992 993| 名称 | 类型 | 必填 | 说明 | 994| ------------------- | ---------------------------------------------------------------| ---- | ------------ | 995| state | [DataConnectState](js-apis-telephony-data.md#dataconnectstate) | 是 | 数据连接状态。 | 996| network | [RatType](js-apis-radio.md#radiotechnology) | 是 | 网络类型。 | 997 998 999## ObserverOptions<sup>11+</sup> 1000 1001电话相关事件订阅参数可选项。 1002 1003**系统能力**:SystemCapability.Telephony.StateRegistry 1004 1005| 名称 | 类型 | 必填 | 说明 | 1006| ------------------- | ------------------| ---- | --------------------------------------- | 1007| slotId | number | 是 | 卡槽ID。<br/>- 0:卡槽1。<br/>- 1:卡槽2。 | 1008 1009