• 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```
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```js
49observer.on('networkStateChange', data => {
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```js
89observer.on('networkStateChange', {slotId: 0}, data => {
90    console.log("on networkStateChange, data:" + JSON.stringify(data));
91});
92```
93
94
95## observer.off('networkStateChange')
96
97off\(type: \'networkStateChange\', callback?: Callback<NetworkState\>\): void;
98
99取消订阅网络状态变化事件,使用callback方式作为异步方法。
100
101>**说明:**
102>
103>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
104
105**系统能力**:SystemCapability.Telephony.StateRegistry
106
107**参数:**
108
109| 参数名   | 类型                                                      | 必填 | 说明                                                         |
110| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
111| type     | string                                                    | 是   | 网络状态变化事件,参数固定为'networkStateChange'。                 |
112| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 否   | 回调函数。参考radio的[NetworkState](js-apis-radio.md#networkstate) |
113
114| 错误码ID |                  错误信息                    |
115| -------- | -------------------------------------------- |
116| 401      | Parameter error.                             |
117| 8300001  | Invalid parameter value.                     |
118| 8300002  | Operation failed. Cannot connect to service. |
119| 8300003  | System internal error.                       |
120| 8300999  | Unknown error code.                          |
121
122**示例:**
123
124```js
125let callback = data => {
126    console.log("on networkStateChange, data:" + JSON.stringify(data));
127}
128observer.on('networkStateChange', callback);
129// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
130observer.off('networkStateChange', callback);
131observer.off('networkStateChange');
132```
133
134## observer.on('signalInfoChange')
135
136on\(type: \'signalInfoChange\', callback: Callback<Array<SignalInformation\>\>): void;
137
138订阅信号状态变化事件,使用callback方式作为异步方法。
139
140**系统能力**:SystemCapability.Telephony.StateRegistry
141
142**参数:**
143
144| 参数名   | 类型                                                         | 必填 | 说明                                                         |
145| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- |
146| type     | string                                                       | 是   | 信号状态变化事件,参数固定为'signalInfoChange'。              |
147| callback | Callback<Array<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 是   | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#signalinformation) |
148
149**错误码:**
150
151以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
152
153| 错误码ID |                  错误信息                    |
154| -------- | -------------------------------------------- |
155| 201      | Permission denied.                           |
156| 401      | Parameter error.                             |
157| 8300001  | Invalid parameter value.                     |
158| 8300002  | Operation failed. Cannot connect to service. |
159| 8300003  | System internal error.                       |
160| 8300999  | Unknown error code.                          |
161
162**示例:**
163
164```js
165observer.on('signalInfoChange', data => {
166    console.log("on signalInfoChange, data:" + JSON.stringify(data));
167});
168```
169
170
171## observer.on('signalInfoChange')
172
173on\(type: \'signalInfoChange\', options: { slotId: number }, callback: Callback<Array<SignalInformation\>\>): void;
174
175订阅指定卡槽位的信号状态变化事件,使用callback方式作为异步方法。
176
177**系统能力**:SystemCapability.Telephony.StateRegistry
178
179**参数:**
180
181| 参数名   | 类型                                                         | 必填 | 说明                                                         |
182| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- |
183| type     | string                                                       | 是   | 信号状态变化事件,参数固定为'signalInfoChange'。              |
184| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
185| callback | Callback<Array<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 是   | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#signalinformation) |
186
187**错误码:**
188
189以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
190
191| 错误码ID |                  错误信息                    |
192| -------- | -------------------------------------------- |
193| 201      | Permission denied.                           |
194| 401      | Parameter error.                             |
195| 8300001  | Invalid parameter value.                     |
196| 8300002  | Operation failed. Cannot connect to service. |
197| 8300003  | System internal error.                       |
198| 8300999  | Unknown error code.                          |
199
200**示例:**
201
202```js
203observer.on('signalInfoChange', {slotId: 0}, data => {
204    console.log("on signalInfoChange, data:" + JSON.stringify(data));
205});
206```
207
208
209## observer.off('signalInfoChange')
210
211off\(type: \'signalInfoChange\', callback?: Callback<Array<SignalInformation\>\>): void;
212
213取消订阅信号状态变化事件,使用callback方式作为异步方法。
214
215>**说明:**
216>
217>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
218
219**系统能力**:SystemCapability.Telephony.StateRegistry
220
221**参数:**
222
223| 参数名   | 类型                                                         | 必填 | 说明                                                         |
224| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
225| type     | string                                                       | 是   | 信号状态变化事件,参数固定为'signalInfoChange'。              |
226| callback | Callback<Array<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 否   | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#signalinformation) |
227
228**错误码:**
229
230以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
231
232| 错误码ID |                  错误信息                    |
233| -------- | -------------------------------------------- |
234| 401      | Parameter error.                             |
235| 8300001  | Invalid parameter value.                     |
236| 8300002  | Operation failed. Cannot connect to service. |
237| 8300003  | System internal error.                       |
238| 8300999  | Unknown error code.                          |
239
240**示例:**
241
242```js
243let callback = data => {
244    console.log("on signalInfoChange, data:" + JSON.stringify(data));
245}
246observer.on('signalInfoChange', callback);
247// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
248observer.off('signalInfoChange', callback);
249observer.off('signalInfoChange');
250```
251
252## observer.on('cellInfoChange')<sup>8+</sup>
253
254on\(type: \'cellInfoChange\', callback: Callback<CellInformation\>\): void;
255
256订阅小区信息变化事件,使用callback方式作为异步方法。
257
258**系统接口:** 此接口为系统接口。
259
260**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
261
262**系统能力**:SystemCapability.Telephony.StateRegistry
263
264**参数:**
265
266| 参数名   | 类型                                                      | 必填 | 说明                                                         |
267| -------- | --------------------------------------------------------- | ---- |------------------------------------------------------------|
268| type     | string                                                    | 是   | 小区信息变化事件,固定为'cellInfoChange'。              |
269| callback | Callback\<[CellInformation](js-apis-radio.md#cellinformation8)\> | 是   | 回调函数。|
270
271**错误码:**
272
273| 错误码ID |                  错误信息                    |
274| -------- | -------------------------------------------- |
275| 201      | Permission denied.                           |
276| 401      | Parameter error.                             |
277| 8300001  | Invalid parameter value.                     |
278| 8300002  | Operation failed. Cannot connect to service. |
279| 8300003  | System internal error.                       |
280| 8300999  | Unknown error code.                          |
281
282**示例:**
283
284```js
285observer.on('cellInfoChange', data => {
286    console.log("on cellInfoChange, data:" + JSON.stringify(data));
287});
288```
289
290
291## observer.on('cellInfoChange')<sup>8+</sup>
292
293on\(type: \'cellInfoChange\', options: { slotId: number }, callback: Callback<CellInformation\>\): void;
294
295订阅指定卡槽位的小区信息变化事件,使用callback方式作为异步方法。
296
297**系统接口:** 此接口为系统接口。
298
299**需要权限**:ohos.permission.LOCATIONohos.permission.APPROXIMATELY_LOCATION
300
301**系统能力**:SystemCapability.Telephony.StateRegistry
302
303**参数:**
304
305| 参数名 | 类型                                               | 必填 | 说明                                                         |
306| ------ |--------------------------------------------------| ---- |------------------------------------------------------------|
307| type     | string                                           | 是   | 小区信息变化事件,固定为'cellInfoChange'。                                                   |
308| slotId | number                                           | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                              |
309| callback | Callback\<[CellInformation](js-apis-radio.md#cellinformation8)\> | 是   | 回调函数。|
310
311**错误码:**
312
313| 错误码ID |                  错误信息                    |
314| -------- | -------------------------------------------- |
315| 201      | Permission denied.                           |
316| 401      | Parameter error.                             |
317| 8300001  | Invalid parameter value.                     |
318| 8300002  | Operation failed. Cannot connect to service. |
319| 8300003  | System internal error.                       |
320| 8300999  | Unknown error code.                          |
321
322**示例:**
323
324```js
325observer.on('cellInfoChange', {slotId: 0}, data => {
326    console.log("on cellInfoChange, data:" + JSON.stringify(data));
327});
328```
329
330
331## observer.off('cellInfoChange')<sup>8+</sup>
332
333off\(type: \'cellInfoChange\', callback?: Callback<CellInformation\>\): void;
334
335取消订阅小区信息变化事件,使用callback方式作为异步方法。
336
337>**说明:**
338>
339>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
340
341**系统接口:** 此接口为系统接口。
342
343**系统能力**:SystemCapability.Telephony.StateRegistry
344
345**参数:**
346
347| 参数名   | 类型                                                      | 必填 | 说明                                                         |
348| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
349| type     | string                                                    | 是   | 小区信息变化事件,固定为'cellInfoChange'。                                            |
350| callback | Callback\<[CellInformation](js-apis-radio.md#cellinformation8)\> | 否   | 回调函数。|
351
352| 错误码ID |                  错误信息                    |
353| -------- | -------------------------------------------- |
354| 401      | Parameter error.                             |
355| 8300001  | Invalid parameter value.                     |
356| 8300002  | Operation failed. Cannot connect to service. |
357| 8300003  | System internal error.                       |
358| 8300999  | Unknown error code.                          |
359
360**示例:**
361
362```js
363let callback = data => {
364    console.log("on cellInfoChange, data:" + JSON.stringify(data));
365}
366observer.on('cellInfoChange', callback);
367// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
368observer.off('cellInfoChange', callback);
369observer.off('cellInfoChange');
370```
371
372## observer.on('callStateChange')
373
374on(type: 'callStateChange', callback: Callback\<{ state: CallState, number: string }\>): void;
375
376订阅通话状态变化事件,使用callback方式作为异步方法。
377
378**系统能力**:SystemCapability.Telephony.StateRegistry
379
380**参数:**
381
382| 参数名   | 类型                                                         | 必填 | 说明                                                         |
383| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- |
384| type     | string                                                       | 是   | 通话状态变化事件,参数固定为'callStateChange'。               |
385| callback | Callback\<{ state: [CallState](js-apis-call.md#callstate), number: string }\> | 是   | 回调函数,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码 |
386
387**错误码:**
388
389以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
390
391| 错误码ID |                  错误信息                    |
392| -------- | -------------------------------------------- |
393| 401      | Parameter error.                             |
394| 8300001  | Invalid parameter value.                     |
395| 8300002  | Operation failed. Cannot connect to service. |
396| 8300003  | System internal error.                       |
397| 8300999  | Unknown error code.                          |
398
399**示例:**
400
401```js
402observer.on('callStateChange', value => {
403    console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
404});
405```
406
407
408## observer.on('callStateChange')
409
410on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state:CallState, number: string }>): void;
411
412订阅通话状态变化事件,使用callback方式作为异步方法。
413
414**系统能力**:SystemCapability.Telephony.StateRegistry
415
416**参数:**
417
418| 参数名   | 类型                                                         | 必填 | 说明                                                         |
419| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- |
420| type     | string                                                       | 是   | 通话状态变化事件,参数固定为'callStateChange'。               |
421| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
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```js
439observer.on('callStateChange', {slotId: 0}, value => {
440    console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
441});
442```
443
444
445## observer.off('callStateChange')
446
447off(type: 'callStateChange', callback?: Callback<{ state: CallState, number: string }>): void;
448
449取消订阅通话状态变化事件,使用callback方式作为异步方法。
450
451>**说明:**
452>
453>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
454
455**系统能力**:SystemCapability.Telephony.StateRegistry
456
457**参数:**
458
459| 参数名   | 类型                                                         | 必填 | 说明                                                         |
460| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- |
461| type     | string                                                       | 是   | 通话状态变化事件,参数固定为'callStateChange'。               |
462| callback | Callback\<{ state: [CallState](js-apis-call.md#callstate), number: string }\> | 否   | 回调函数,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码 |
463
464**错误码:**
465
466以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
467
468| 错误码ID |                  错误信息                    |
469| -------- | -------------------------------------------- |
470| 401      | Parameter error.                             |
471| 8300001  | Invalid parameter value.                     |
472| 8300002  | Operation failed. Cannot connect to service. |
473| 8300003  | System internal error.                       |
474| 8300999  | Unknown error code.                          |
475
476**示例:**
477
478```js
479let callback = value => {
480    console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
481}
482observer.on('callStateChange', callback);
483// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
484observer.off('callStateChange', callback);
485observer.off('callStateChange');
486```
487
488
489## observer.on('cellularDataConnectionStateChange')<sup>7+</sup>
490
491on\(type: 'cellularDataConnectionStateChange', callback: Callback\<{ state: DataConnectState, network: RatType}\>\): void;
492
493订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。
494
495**系统能力**:SystemCapability.Telephony.StateRegistry
496
497**参数:**
498
499| 参数名   | 类型                                                         | 必填 | 说明                                                         |
500| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
501| type     | string                                                       | 是   | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。|
502| 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)。 |
503
504**错误码:**
505
506以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
507
508| 错误码ID |                  错误信息                    |
509| -------- | -------------------------------------------- |
510| 401      | Parameter error.                             |
511| 8300001  | Invalid parameter value.                     |
512| 8300002  | Operation failed. Cannot connect to service. |
513| 8300003  | System internal error.                       |
514| 8300999  | Unknown error code.                          |
515
516**示例:**
517
518```js
519observer.on('cellularDataConnectionStateChange', value => {
520    console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
521});
522```
523
524
525## observer.on('cellularDataConnectionStateChange')<sup>7+</sup>
526
527on\(type: 'cellularDataConnectionStateChange', options: { slotId: number }, callback: Callback\<{ state: DataConnectState, network: RatType }\>\): void;
528
529订阅指定卡槽位的蜂窝数据链路连接状态,使用callback方式作为异步方法。
530
531**系统能力**:SystemCapability.Telephony.StateRegistry
532
533**参数:**
534
535| 参数名   | 类型                                                         | 必填 | 说明                                                         |
536| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
537| type     | string                                                       | 是   | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。|
538| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
539| 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)。 |
540
541**错误码:**
542
543以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
544
545| 错误码ID |                  错误信息                    |
546| -------- | -------------------------------------------- |
547| 401      | Parameter error.                             |
548| 8300001  | Invalid parameter value.                     |
549| 8300002  | Operation failed. Cannot connect to service. |
550| 8300003  | System internal error.                       |
551| 8300999  | Unknown error code.                          |
552
553**示例:**
554
555```js
556observer.on('cellularDataConnectionStateChange', {slotId: 0}, value => {
557    console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
558});
559```
560
561
562## observer.off('cellularDataConnectionStateChange')<sup>7+</sup>
563
564off\(type: 'cellularDataConnectionStateChange',  callback?: Callback\<{ state: DataConnectState, network: RatType}\>\): void;
565
566移除订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。
567
568>**说明:**
569>
570>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
571
572**系统能力**:SystemCapability.Telephony.StateRegistry
573
574**参数:**
575
576| 参数名   | 类型                                                         | 必填 | 说明                                                         |
577| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
578| type     | string                                                       | 是   | 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。|
579| 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)。 |
580
581**错误码:**
582
583以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
584
585| 错误码ID |                  错误信息                    |
586| -------- | -------------------------------------------- |
587| 401      | Parameter error.                             |
588| 8300001  | Invalid parameter value.                     |
589| 8300002  | Operation failed. Cannot connect to service. |
590| 8300003  | System internal error.                       |
591| 8300999  | Unknown error code.                          |
592
593**示例:**
594
595```js
596let callback = value => {
597    console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
598}
599observer.on('cellularDataConnectionStateChange', callback);
600// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
601observer.off('cellularDataConnectionStateChange', callback);
602observer.off('cellularDataConnectionStateChange');
603```
604
605
606## observer.on('cellularDataFlowChange')<sup>7+</sup>
607
608on\(type: 'cellularDataFlowChange', callback: Callback\<DataFlowType\>\): void;
609
610订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
611
612**系统能力**:SystemCapability.Telephony.StateRegistry
613
614**参数:**
615
616| 参数名   | 类型                                                         | 必填 | 说明                                                         |
617| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
618| type     | string                                                       | 是  | 蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。         |
619| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是   | 回调函数,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 |
620
621**错误码:**
622
623以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
624
625| 错误码ID |                  错误信息                    |
626| -------- | -------------------------------------------- |
627| 401      | Parameter error.                             |
628| 8300001  | Invalid parameter value.                     |
629| 8300002  | Operation failed. Cannot connect to service. |
630| 8300003  | System internal error.                       |
631| 8300999  | Unknown error code.                          |
632
633**示例:**
634
635```js
636observer.on('cellularDataFlowChange', data => {
637    console.log("on networkStateChange, data:" + JSON.stringify(data));
638});
639```
640
641
642## observer.on('cellularDataFlowChange')<sup>7+</sup>
643
644on\(type: 'cellularDataFlowChange', options: { slotId: number },  callback: Callback\<DataFlowType\>\): void;
645
646订阅指定卡槽位的蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
647
648**系统能力**:SystemCapability.Telephony.StateRegistry
649
650**参数:**
651
652| 参数名   | 类型                                                         | 必填 | 说明                                                         |
653| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
654| type     | string                                                       | 是   | 蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。         |
655| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                                             |
656| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是   | 回调函数,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 |
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```js
673observer.on('cellularDataFlowChange', {slotId: 0}, data => {
674    console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
675});
676```
677
678
679## observer.off('cellularDataFlowChange')<sup>7+</sup>
680
681off\(type: 'cellularDataFlowChange', callback?: Callback\<DataFlowType\>\): void;
682
683移除订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
684
685>**说明:**
686>
687>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
688
689**系统能力**:SystemCapability.Telephony.StateRegistry
690
691**参数:**
692
693| 参数名   | 类型                                                                | 必填 | 说明                                                         |
694| -------- | ------------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
695| type     | string                                                             | 是   | 蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。   |
696| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 否   | 回调函数,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 |
697
698**错误码:**
699
700以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
701
702| 错误码ID |                  错误信息                    |
703| -------- | -------------------------------------------- |
704| 401      | Parameter error.                             |
705| 8300001  | Invalid parameter value.                     |
706| 8300002  | Operation failed. Cannot connect to service. |
707| 8300003  | System internal error.                       |
708| 8300999  | Unknown error code.                          |
709
710**示例:**
711
712```js
713let callback = data => {
714    console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
715}
716observer.on('cellularDataFlowChange', callback);
717// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
718observer.off('cellularDataFlowChange', callback);
719observer.off('cellularDataFlowChange');
720```
721
722
723## observer.on('simStateChange')<sup>7+</sup>
724
725on\(type: 'simStateChange', callback: Callback\<SimStateData\>\): void;
726
727订阅sim状态更改事件,使用callback方式作为异步方法。
728
729**系统能力**:SystemCapability.Telephony.StateRegistry
730
731**参数:**
732
733| 参数名   | 类型                                                         | 必填 | 说明                                                         |
734| -------- | ------------------------------------------------------------ | ---- | ----------------------------------------------------------- |
735| type     | string                                                       | 是   | sim状态更改事件,参数固定为'simStateChange'。                 |
736| callback | Callback\<[SimStateData](#simstatedata7)\> | 是   | 回调函数。 |
737
738**错误码:**
739
740以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
741
742| 错误码ID |                 错误信息                     |
743| -------- | -------------------------------------------- |
744| 401      | Parameter error.                             |
745| 8300001  | Invalid parameter value.                     |
746| 8300002  | Operation failed. Cannot connect to service. |
747| 8300003  | System internal error.                       |
748| 8300999  | Unknown error code.                          |
749
750**示例:**
751
752```js
753observer.on('simStateChange', data => {
754    console.log("on simStateChange, data:" + JSON.stringify(data));
755});
756```
757
758
759## observer.on('simStateChange')<sup>7+</sup>
760
761on\(type: 'simStateChange', options: { slotId: number }, callback: Callback\<SimStateData\>\): void;
762
763订阅指定卡槽位的sim状态更改事件,使用callback方式作为异步方法。
764
765**系统能力**:SystemCapability.Telephony.StateRegistry
766
767**参数:**
768
769| 参数名   | 类型                                                         | 必填 | 说明                                                         |
770| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
771| type     | string                                                       | 是   | sim状态更改事件,参数固定为'simStateChange'。                 |
772| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
773| callback | Callback\<[SimStateData](#simstatedata7)\> | 是   | 回调函数。 |
774
775**错误码:**
776
777以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
778
779| 错误码ID |                 错误信息                     |
780| -------- | -------------------------------------------- |
781| 401      | Parameter error.                             |
782| 8300001  | Invalid parameter value.                     |
783| 8300002  | Operation failed. Cannot connect to service. |
784| 8300003  | System internal error.                       |
785| 8300999  | Unknown error code.                          |
786
787**示例:**
788
789```js
790observer.on('simStateChange', {slotId: 0}, data => {
791    console.log("on simStateChange, data:" + JSON.stringify(data));
792});
793```
794
795
796## observer.off('simStateChange')<sup>7+</sup>
797
798off\(type: 'simStateChange', callback?: Callback\<SimStateData\>\): void;
799
800移除订阅sim状态更改事件,使用callback方式作为异步方法。
801
802>**说明:**
803>
804>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
805
806**系统能力**:SystemCapability.Telephony.StateRegistry
807
808**参数:**
809
810| 参数名   | 类型                                                         | 必填 | 说明                                                         |
811| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
812| type     | string                                                       | 是   | sim状态更改事件,参数固定为'simStateChange'。                 |
813| callback | Callback\<[SimStateData](#simstatedata7)\> | 否   | 回调函数。 |
814
815**错误码:**
816
817以下错误码的详细介绍请参见[ohos.telephony(电话子系统)错误码](../../reference/errorcodes/errorcode-telephony.md)错误码。
818
819| 错误码ID |                 错误信息                     |
820| -------- | -------------------------------------------- |
821| 401      | Parameter error.                             |
822| 8300001  | Invalid parameter value.                     |
823| 8300002  | Operation failed. Cannot connect to service. |
824| 8300003  | System internal error.                       |
825| 8300999  | Unknown error code.                          |
826
827**示例:**
828
829```js
830let callback = data => {
831    console.log("on simStateChange, data:" + JSON.stringify(data));
832}
833observer.on('simStateChange', callback);
834// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
835observer.off('simStateChange', callback);
836observer.off('simStateChange');
837```
838
839
840## LockReason<sup>8+</sup>
841
842SIM卡锁类型。
843
844**系统能力**:SystemCapability.Telephony.StateRegistry
845
846| 名称        | 值   | 说明              |
847| ----------- | ---- | ----------------- |
848| SIM_NONE    | 0    | 无锁。            |
849| SIM_PIN     | 1    | PIN锁。           |
850| SIM_PUK     | 2    | PUK锁。           |
851| SIM_PN_PIN  | 3    | 网络PIN锁。       |
852| SIM_PN_PUK  | 4    | 网络PUK锁。       |
853| SIM_PU_PIN  | 5    | 子网PIN锁。       |
854| SIM_PU_PUK  | 6    | 子网PUK锁。       |
855| SIM_PP_PIN  | 7    | 服务提供商PIN锁。 |
856| SIM_PP_PUK  | 8    | 服务提供商PUK锁。 |
857| SIM_PC_PIN  | 9    | 组织PIN锁。       |
858| SIM_PC_PUK  | 10   | 组织PUK锁。       |
859| SIM_SIM_PIN | 11   | SIM PIN锁。       |
860| SIM_SIM_PUK | 12   | SIM PUK锁。       |
861
862
863## SimStateData<sup>7+</sup>
864
865SIM卡类型和状态。
866
867**系统能力**:SystemCapability.Telephony.StateRegistry
868
869|     名称            |                 类型                | 必填 | 说明                                                      |
870| ------------------- | ----------------------------------- | ---- | --------------------------------------------------------  |
871| type                | [CardType](js-apis-sim.md#cardtype7) | 是   | SIM卡类型。 |
872| state               | [SimState](js-apis-sim.md#simstate) | 是   | SIM卡状态。 |
873| reason<sup>8+</sup> | [LockReason](#lockreason8)          | 是   | SIM卡锁类型。                                             |
874