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