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