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