• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# observer
2
3>**说明:**
4>
5>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
6
7
8## 导入模块
9
10```
11import observer from '@ohos.telephony.observer'
12```
13
14## observer.on('networkStateChange')
15
16on\(type: \'networkStateChange\', callback: Callback<NetworkState\>\): void;
17
18订阅网络状态变化事件,使用callback方式作为异步方法。
19
20**需要权限**:ohos.permission.GET_NETWORK_INFO
21
22**系统能力**:SystemCapability.Telephony.StateRegistry
23
24**参数:**
25
26| 参数名   | 类型                                                      | 必填 | 说明                                                         |
27| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
28| type     | string                                                    | 是   | 网络状态变化事件                                             |
29| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 是   | 回调函数。参考radio的[NetworkState](js-apis-radio.md#networkstate) |
30
31**示例:**
32
33```
34observer.on('networkStateChange', data =>{
35    console.log("on networkStateChange, data:" + JSON.stringify(data));
36});
37```
38
39
40## observer.on('networkStateChange')
41
42on\(type: \'networkStateChange\', options: { slotId: number }, callback: Callback<NetworkState\>\): void;
43
44订阅指定卡槽位的网络状态变化事件,使用callback方式作为异步方法。
45
46**需要权限**:ohos.permission.GET_NETWORK_INFO
47
48**系统能力**:SystemCapability.Telephony.StateRegistry
49
50**参数:**
51
52| 参数名 | 类型   | 必填 | 说明                                   |
53| ------ | ------ | ---- | -------------------------------------- |
54| type     | string                                    | 是   | 网络状态变化事件                  |
55| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
56| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 是   | 回调函数。参考radio的[NetworkState](js-apis-radio.md#networkstate) |
57
58**示例:**
59
60```
61observer.on('networkStateChange', {slotId: 0}, data =>{
62    console.log("on networkStateChange, data:" + JSON.stringify(data));
63});
64```
65
66
67## observer.off('networkStateChange')
68
69off\(type: \'networkStateChange\', callback?: Callback<NetworkState\>\): void;
70
71取消订阅网络状态变化事件,使用callback方式作为异步方法。
72
73**需要权限**:ohos.permission.GET_NETWORK_INFO
74
75>**说明:**
76>
77>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
78
79**系统能力**:SystemCapability.Telephony.StateRegistry
80
81**参数:**
82
83| 参数名   | 类型                                                      | 必填 | 说明                                                         |
84| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
85| type     | string                                                    | 是   | 网络状态变化事件                                             |
86| callback | Callback\<[NetworkState](js-apis-radio.md#networkstate)\> | 否   | 回调函数。参考radio的[NetworkState](js-apis-radio.md#networkstate) |
87
88**示例:**
89
90```
91let callback = data => {
92    console.log("on networkStateChange, data:" + JSON.stringify(data));
93}
94observer.on('networkStateChange', callback);
95// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
96observer.off('networkStateChange', callback);
97observer.off('networkStateChange');
98```
99
100## observer.on('signalInfoChange')
101
102on\(type: \'signalInfoChange\', callback: Callback<Array<SignalInformation\>\>): void;
103
104订阅信号状态变化事件,使用callback方式作为异步方法。
105
106**系统能力**:SystemCapability.Telephony.StateRegistry
107
108**参数:**
109
110| 参数名   | 类型                                                         | 必填 | 说明                                                         |
111| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
112| type     | string                                                       | 是   | 信号状态变化事件                                             |
113| callback | Callback<Array<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 是   | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#signalinformation) |
114
115**示例:**
116
117```
118observer.on('signalInfoChange', data =>{
119    console.log("on signalInfoChange, data:" + JSON.stringify(data));
120});
121```
122
123
124## observer.on('signalInfoChange')
125
126on\(type: \'signalInfoChange\', options: { slotId: number }, callback: Callback<Array<SignalInformation\>\>): void;
127
128订阅指定卡槽位的信号状态变化事件,使用callback方式作为异步方法。
129
130**系统能力**:SystemCapability.Telephony.StateRegistry
131
132**参数:**
133
134| 参数名 | 类型   | 必填 | 说明                                   |
135| ------ | ------ | ---- | -------------------------------------- |
136| type     | string                                    | 是   | 信号状态变化事件                |
137| slotId | number | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2 |
138| callback | Callback<Array<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 是   | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#signalinformation) |
139
140**示例:**
141
142```
143observer.on('signalInfoChange', {slotId: 0}, data =>{
144    console.log("on signalInfoChange, data:" + JSON.stringify(data));
145});
146```
147
148
149## observer.off('signalInfoChange')
150
151off\(type: \'signalInfoChange\', callback?: Callback<Array<SignalInformation\>\>): void;
152
153取消订阅信号状态变化事件,使用callback方式作为异步方法。
154
155>**说明:**
156>
157>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
158
159**系统能力**:SystemCapability.Telephony.StateRegistry
160
161**参数:**
162
163| 参数名   | 类型                                                         | 必填 | 说明                                                         |
164| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
165| type     | string                                                       | 是   | 信号状态变化事件                                             |
166| callback | Callback<Array<[SignalInformation](js-apis-radio.md#signalinformation)\>\> | 否   | 回调函数。参考radio的[SignalInformation](js-apis-radio.md#signalinformation) |
167
168**示例:**
169
170```
171let callback = data => {
172    console.log("on signalInfoChange, data:" + JSON.stringify(data));
173}
174observer.on('signalInfoChange', callback);
175// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
176observer.off('signalInfoChange', callback);
177observer.off('signalInfoChange');
178```
179
180
181## observer.on('callStateChange')
182
183on(type: 'callStateChange', callback: Callback\<{ state: CallState, number: string }\>): void;
184
185订阅通话状态变化事件,使用callback方式作为异步方法。
186
187**需要权限**:ohos.permission.READ_CALL_LOG
188
189**系统能力**:SystemCapability.Telephony.StateRegistry
190
191**参数:**
192
193| 参数名   | 类型                                                         | 必填 | 说明                                                         |
194| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
195| type     | string                                                       | 是   | 通话状态变化事件                                             |
196| callback | Callback\<{ state: [CallState](js-apis-call.md#callstate), number: string }\> | 是   | 回调函数,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码 |
197
198**示例:**
199
200```
201observer.on('callStateChange', value =>{
202    console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
203});
204```
205
206
207## observer.on('callStateChange')
208
209on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state:CallState, number: string }>): void;
210
211订阅通话状态变化事件,使用callback方式作为异步方法。
212
213**需要权限**:ohos.permission.READ_CALL_LOG
214
215**系统能力**:SystemCapability.Telephony.StateRegistry
216
217**参数:**
218
219| 参数名   | 类型                                                         | 必填 | 说明                                                         |
220| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
221| type     | string                                                       | 是   | 通话状态变化事件                                             |
222| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
223| callback | Callback\<{ state: [CallState](js-apis-call.md#callstate), number: string }\> | 是   | 回调函数,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码 |
224
225**示例:**
226
227```
228observer.on('callStateChange', {slotId: 0}, value =>{
229    console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
230});
231```
232
233
234## observer.off('callStateChange')
235
236off(type: 'callStateChange', callback?: Callback<{ state: CallState, number: string }>): void;
237
238取消订阅通话状态变化事件,使用callback方式作为异步方法。
239
240**需要权限**:ohos.permission.READ_CALL_LOG
241
242>**说明:**
243>
244>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
245
246**系统能力**:SystemCapability.Telephony.StateRegistry
247
248**参数:**
249
250| 参数名   | 类型                                                         | 必填 | 说明                                                         |
251| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
252| type     | string                                                       | 是   | 通话状态变化事件                                             |
253| callback | Callback\<{ state: [CallState](js-apis-call.md#callstate), number: string }\> | 否   | 回调函数,参考call的[CallState](js-apis-call.md#callstate)<br />number:电话号码 |
254
255**示例:**
256
257```
258let callback = value => {
259    console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
260}
261observer.on('callStateChange', callback);
262// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
263observer.off('callStateChange', callback);
264observer.off('callStateChange');
265```
266
267
268## observer.on('cellularDataConnectionStateChange')<sup>7+</sup>
269
270on\(type: 'cellularDataConnectionStateChange', callback: Callback\<{ state: DataConnectState, network: RatType}\>\): void;
271
272订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。
273
274**系统能力**:SystemCapability.Telephony.StateRegistry
275
276**参数:**
277
278| 参数名   | 类型                                                         | 必填 | 说明                                                         |
279| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
280| type     | string                                                       | 是   | 蜂窝数据链路连接状态事件                                     |
281| 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)。 |
282
283**示例:**
284
285```
286observer.on('cellularDataConnectionStateChange', value =>{
287    console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
288});
289```
290
291
292## observer.on('cellularDataConnectionStateChange')<sup>7+</sup>
293
294on\(type: 'cellularDataConnectionStateChange', options: { slotId: number }, callback: Callback\<{ state: DataConnectState, network: RatType }\>\): void;
295
296订阅指定卡槽位的蜂窝数据链路连接状态,使用callback方式作为异步方法。
297
298**系统能力**:SystemCapability.Telephony.StateRegistry
299
300**参数:**
301
302| 参数名   | 类型                                                         | 必填 | 说明                                                         |
303| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
304| type     | string                                                       | 是   | 蜂窝数据链路连接状态事件                                     |
305| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
306| 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)。 |
307
308**示例:**
309
310```
311observer.on('cellularDataConnectionStateChange', {slotId: 0}, value =>{
312    console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
313});
314```
315
316
317## observer.off('cellularDataConnectionStateChange')<sup>7+</sup>
318
319off\(type: 'cellularDataConnectionStateChange',  callback?: Callback\<{ state: DataConnectState, network: RatType}\>\): void;
320
321移除订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。
322
323>**说明:**
324>
325>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
326
327**系统能力**:SystemCapability.Telephony.StateRegistry
328
329**参数:**
330
331| 参数名   | 类型                                                         | 必填 | 说明                                                         |
332| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
333| type     | string                                                       | 是   | 蜂窝数据链路连接状态事件                                     |
334| 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)。 |
335
336**示例:**
337
338```
339let callback = value => {
340    console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
341}
342observer.on('cellularDataConnectionStateChange', callback);
343// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
344observer.off('cellularDataConnectionStateChange', callback);
345observer.off('cellularDataConnectionStateChange');
346```
347
348
349## observer.on('cellularDataFlowChange')<sup>7+</sup>
350
351on\(type: 'cellularDataFlowChange', callback: Callback\<DataFlowType\>\): void;
352
353订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
354
355**系统能力**:SystemCapability.Telephony.StateRegistry
356
357**参数:**
358
359| 参数名   | 类型                                                         | 必填 | 说明                                                         |
360| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
361| type     | string                                                       | 是   | 蜂窝数据业务的上下行数据流状态状态事件                       |
362| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是   | 回调函数,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 |
363
364**示例:**
365
366```
367observer.on('cellularDataFlowChange', data =>{
368    console.log("on networkStateChange, data:" + JSON.stringify(data));
369});
370```
371
372
373## observer.on('cellularDataFlowChange')<sup>7+</sup>
374
375on\(type: 'cellularDataFlowChange', options: { slotId: number },  callback: Callback\<DataFlowType\>\): void;
376
377订阅指定卡槽位的蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
378
379**系统能力**:SystemCapability.Telephony.StateRegistry
380
381**参数:**
382
383| 参数名   | 类型                                                         | 必填 | 说明                                                         |
384| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
385| type     | string                                                       | 是   | 蜂窝数据业务的上下行数据流状态事件                           |
386| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
387| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 是   | 回调函数,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 |
388
389**示例:**
390
391```
392observer.on('cellularDataFlowChange', {slotId: 0}, data =>{
393    console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
394});
395```
396
397
398## observer.off('cellularDataFlowChange')<sup>7+</sup>
399
400off\(type: 'cellularDataFlowChange', callback?: Callback\<DataFlowType\>\): void;
401
402移除订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。
403
404>**说明:**
405>
406>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
407
408**系统能力**:SystemCapability.Telephony.StateRegistry
409
410**参数:**
411
412| 参数名   | 类型                                                         | 必填 | 说明                                                         |
413| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
414| type     | string                                                       | 是   | 蜂窝数据业务的上下行数据流状态事件                           |
415| callback | Callback\<[DataFlowType](js-apis-telephony-data.md#dataflowtype)\> | 否   | 回调函数,参考data的[DataFlowType](js-apis-telephony-data.md#dataflowtype)。 |
416
417**示例:**
418
419```
420let callback = data => {
421    console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
422}
423observer.on('cellularDataFlowChange', callback);
424// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
425observer.off('cellularDataFlowChange', callback);
426observer.off('cellularDataFlowChange');
427```
428
429
430## observer.on('simStateChange')<sup>7+</sup>
431
432on\(type: 'simStateChange', callback: Callback\<SimStateData\>\): void;
433
434订阅sim状态更改事件,使用callback方式作为异步方法。
435
436**系统能力**:SystemCapability.Telephony.StateRegistry
437
438**参数:**
439
440| 参数名   | 类型                                                         | 必填 | 说明                                                         |
441| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
442| type     | string                                                       | 是   | sim状态更改事件                                     |
443| callback | Callback\<[SimStateData](#simstatedata7)\> | 是   | 回调函数。 |
444
445**示例:**
446
447```
448observer.on('simStateChange', data =>{
449    console.log("on simStateChange, data:" + JSON.stringify(data));
450});
451```
452
453
454## observer.on('simStateChange')<sup>7+</sup>
455
456on\(type: 'simStateChange', options: { slotId: number }, callback: Callback\<SimStateData\>\): void;
457
458订阅指定卡槽位的sim状态更改事件,使用callback方式作为异步方法。
459
460**系统能力**:SystemCapability.Telephony.StateRegistry
461
462**参数:**
463
464| 参数名   | 类型                                                         | 必填 | 说明                                                         |
465| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
466| type     | string                                                       | 是   | sim状态更改事件                                     |
467| slotId   | number                                                       | 是   | 卡槽ID。<br/>- 0:卡槽1<br/>- 1:卡槽2                       |
468| callback | Callback\<[SimStateData](#simstatedata7)\> | 是   | 回调函数。 |
469
470**示例:**
471
472```
473observer.on('simStateChange', {slotId: 0}, data =>{
474    console.log("on simStateChange, data:" + JSON.stringify(data));
475});
476```
477
478
479## observer.off('simStateChange')<sup>7+</sup>
480
481off\(type: 'simStateChange', callback?: Callback\<SimStateData\>\): void;
482
483移除订阅sim状态更改事件,使用callback方式作为异步方法。
484
485>**说明:**
486>
487>可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
488
489**系统能力**:SystemCapability.Telephony.StateRegistry
490
491**参数:**
492
493| 参数名   | 类型                                                         | 必填 | 说明                                                         |
494| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
495| type     | string                                                       | 是   | sim状态更改事件                                             |
496| callback | Callback\<[SimStateData](#simstatedata7)\> | 否   | 回调函数。 |
497
498**示例:**
499
500```
501let callback = data => {
502    console.log("on simStateChange, data:" + JSON.stringify(data));
503}
504observer.on('simStateChange', callback);
505// 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
506observer.off('simStateChange', callback);
507observer.off('simStateChange');
508```
509
510
511## LockReason<sup>8+</sup>
512
513SIM卡锁类型。
514
515**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.StateRegistry516
517| 名称        | 值   | 说明              |
518| ----------- | ---- | ----------------- |
519| SIM_NONE    | 0    | 无锁。            |
520| SIM_PIN     | 1    | PIN锁。           |
521| SIM_PUK     | 2    | PUK锁。           |
522| SIM_PN_PIN  | 3    | 网络PIN锁。       |
523| SIM_PN_PUK  | 4    | 网络PUK锁。       |
524| SIM_PU_PIN  | 5    | 子网PIN锁。       |
525| SIM_PU_PUK  | 6    | 子网PUK锁。       |
526| SIM_PP_PIN  | 7    | 服务提供商PIN锁。 |
527| SIM_PP_PUK  | 8    | 服务提供商PUK锁。 |
528| SIM_PC_PIN  | 9    | 组织PIN锁。       |
529| SIM_PC_PUK  | 10   | 组织PUK锁。       |
530| SIM_SIM_PIN | 11   | SIM PIN锁。       |
531| SIM_SIM_PUK | 12   | SIM PUK锁。       |
532
533
534## SimStateData<sup>7+</sup>
535
536SIM卡类型和状态。
537
538**系统能力**:以下各项对应的系统能力均为SystemCapability.Telephony.StateRegistry539
540| 名称            | 类型                  | 说明                                                         |
541| ----------------- | --------------------- | ------------------------------------------------------------ |
542| type  | [CardType](js-apis-sim.md#cardtype) | SIM卡类型,参考sim的[CardType](js-apis-sim.md#cardtype)。 |
543| state | [SimState](js-apis-sim.md#simstate) | SIM卡状态,参考sim的[SimState](js-apis-sim.md#simstate)。 |
544| reason<sup>8+</sup>       | [LockReason](#lockreason8) | SIM卡锁类型。 |
545
546