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