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