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