订阅管理功能

2024-01-23 16:36 更新

本模块提供订阅管理功能,可以订阅/取消订阅的事件包括:网络状态变化、信号状态变化、通话状态变化、蜂窝数据链路连接状态、蜂窝数据业务的上下行数据流状态、SIM状态变化。

说明

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

  1. import observer from '@ohos.telephony.observer';

observer.on('networkStateChange')

on(type: 'networkStateChange', callback: Callback<NetworkState>): void;

订阅网络状态变化事件,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

网络状态变化事件,参数固定为'networkStateChange'。

callback

Callback<NetworkState>

回调函数。参考radio的NetworkState

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

201

Permission denied.

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('networkStateChange', data => {
  2. console.log("on networkStateChange, data:" + JSON.stringify(data));
  3. });

observer.on('networkStateChange')

on(type: 'networkStateChange', options: { slotId: number }, callback: Callback<NetworkState>): void;

订阅指定卡槽位的网络状态变化事件,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

网络状态变化事件,参数固定为'networkStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<NetworkState>

回调函数。参考radio的NetworkState

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

201

Permission denied.

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('networkStateChange', {slotId: 0}, data => {
  2. console.log("on networkStateChange, data:" + JSON.stringify(data));
  3. });

observer.off('networkStateChange')

off(type: 'networkStateChange', callback?: Callback<NetworkState>): void;

取消订阅网络状态变化事件,使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

网络状态变化事件,参数固定为'networkStateChange'。

callback

Callback<NetworkState>

回调函数。参考radio的NetworkState

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. let callback = data => {
  2. console.log("on networkStateChange, data:" + JSON.stringify(data));
  3. }
  4. observer.on('networkStateChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('networkStateChange', callback);
  7. observer.off('networkStateChange');

observer.on('signalInfoChange')

on(type: 'signalInfoChange', callback: Callback<Array<SignalInformation>>): void;

订阅信号状态变化事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

信号状态变化事件,参数固定为'signalInfoChange'。

callback

Callback<Array<SignalInformation>>

回调函数。参考radio的SignalInformation

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

201

Permission denied.

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('signalInfoChange', data => {
  2. console.log("on signalInfoChange, data:" + JSON.stringify(data));
  3. });

observer.on('signalInfoChange')

on(type: 'signalInfoChange', options: { slotId: number }, callback: Callback<Array<SignalInformation>>): void;

订阅指定卡槽位的信号状态变化事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

信号状态变化事件,参数固定为'signalInfoChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<Array<SignalInformation>>

回调函数。参考radio的SignalInformation

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

201

Permission denied.

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('signalInfoChange', {slotId: 0}, data => {
  2. console.log("on signalInfoChange, data:" + JSON.stringify(data));
  3. });

observer.off('signalInfoChange')

off(type: 'signalInfoChange', callback?: Callback<Array<SignalInformation>>): void;

取消订阅信号状态变化事件,使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

信号状态变化事件,参数固定为'signalInfoChange'。

callback

Callback<Array<SignalInformation>>

回调函数。参考radio的SignalInformation

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. let callback = data => {
  2. console.log("on signalInfoChange, data:" + JSON.stringify(data));
  3. }
  4. observer.on('signalInfoChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('signalInfoChange', callback);
  7. observer.off('signalInfoChange');

observer.on('callStateChange')

on(type: 'callStateChange', callback: Callback<{ state: CallState, number: string }>): void;

订阅通话状态变化事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

通话状态变化事件,参数固定为'callStateChange'。

callback

Callback<{ state: CallState, number: string }>

回调函数,参考call的CallState

number:电话号码

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('callStateChange', value => {
  2. console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
  3. });

observer.on('callStateChange')

on(type: 'callStateChange', options: { slotId: number }, callback: Callback<{ state:CallState, number: string }>): void;

订阅通话状态变化事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

通话状态变化事件,参数固定为'callStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<{ state: CallState, number: string }>

回调函数,参考call的CallState

number:电话号码

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('callStateChange', {slotId: 0}, value => {
  2. console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
  3. });

observer.off('callStateChange')

off(type: 'callStateChange', callback?: Callback<{ state: CallState, number: string }>): void;

取消订阅通话状态变化事件,使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

通话状态变化事件,参数固定为'callStateChange'。

callback

Callback<{ state: CallState, number: string }>

回调函数,参考call的CallState

number:电话号码

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. let callback = value => {
  2. console.log("on callStateChange, state:" + value.state + ", number:" + value.number);
  3. }
  4. observer.on('callStateChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('callStateChange', callback);
  7. observer.off('callStateChange');

observer.on('cellularDataConnectionStateChange')7+

on(type: 'cellularDataConnectionStateChange', callback: Callback<{ state: DataConnectState, network: RatType}>): void;

订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。

callback

Callback<{ state: DataConnectState, network: RatType }>

回调函数,参考data的DataConnectState,radio的RadioTechnology

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('cellularDataConnectionStateChange', value => {
  2. console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
  3. });

observer.on('cellularDataConnectionStateChange')7+

on(type: 'cellularDataConnectionStateChange', options: { slotId: number }, callback: Callback<{ state: DataConnectState, network: RatType }>): void;

订阅指定卡槽位的蜂窝数据链路连接状态,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<{ state: DataConnectState, network: RatType }>

回调函数,参考data的DataConnectState,radio的RadioTechnology

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('cellularDataConnectionStateChange', {slotId: 0}, value => {
  2. console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
  3. });

observer.off('cellularDataConnectionStateChange')7+

off(type: 'cellularDataConnectionStateChange', callback?: Callback<{ state: DataConnectState, network: RatType}>): void;

移除订阅蜂窝数据链路连接状态,使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。

callback

Callback<{ state: DataConnectState, network: RatType }>

回调函数,参考data的DataConnectState,radio的RadioTechnology

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. let callback = value => {
  2. console.log("on cellularDataConnectionStateChange, state:" + value.state + ", network:" + value.network);
  3. }
  4. observer.on('cellularDataConnectionStateChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('cellularDataConnectionStateChange', callback);
  7. observer.off('cellularDataConnectionStateChange');

observer.on('cellularDataFlowChange')7+

on(type: 'cellularDataFlowChange', callback: Callback<DataFlowType>): void;

订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

蜂窝数据业务的上下行数据流状态状态事件,参数固定为'cellularDataFlowChange'。

callback

Callback<DataFlowType>

回调函数,参考data的DataFlowType

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('cellularDataFlowChange', data => {
  2. console.log("on networkStateChange, data:" + JSON.stringify(data));
  3. });

observer.on('cellularDataFlowChange')7+

on(type: 'cellularDataFlowChange', options: { slotId: number }, callback: Callback<DataFlowType>): void;

订阅指定卡槽位的蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<DataFlowType>

回调函数,参考data的DataFlowType

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('cellularDataFlowChange', {slotId: 0}, data => {
  2. console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
  3. });

observer.off('cellularDataFlowChange')7+

off(type: 'cellularDataFlowChange', callback?: Callback<DataFlowType>): void;

移除订阅蜂窝数据业务的上下行数据流状态,使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。

callback

Callback<DataFlowType>

回调函数,参考data的DataFlowType

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. let callback = data => {
  2. console.log("on cellularDataFlowChange, data:" + JSON.stringify(data));
  3. }
  4. observer.on('cellularDataFlowChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('cellularDataFlowChange', callback);
  7. observer.off('cellularDataFlowChange');

observer.on('simStateChange')7+

on(type: 'simStateChange', callback: Callback<SimStateData>): void;

订阅sim状态更改事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

sim状态更改事件,参数固定为'simStateChange'。

callback

Callback<SimStateData>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('simStateChange', data => {
  2. console.log("on simStateChange, data:" + JSON.stringify(data));
  3. });

observer.on('simStateChange')7+

on(type: 'simStateChange', options: { slotId: number }, callback: Callback<SimStateData>): void;

订阅指定卡槽位的sim状态更改事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

sim状态更改事件,参数固定为'simStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<SimStateData>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. observer.on('simStateChange', {slotId: 0}, data => {
  2. console.log("on simStateChange, data:" + JSON.stringify(data));
  3. });

observer.off('simStateChange')7+

off(type: 'simStateChange', callback?: Callback<SimStateData>): void;

移除订阅sim状态更改事件,使用callback方式作为异步方法。

说明

可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

参数名

类型

必填

说明

type

string

sim状态更改事件,参数固定为'simStateChange'。

callback

Callback<SimStateData>

回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码错误码。

错误码ID

错误信息

401

Parameter error.

8300001

Invalid parameter value.

8300002

Operation failed. Cannot connect to service.

8300003

System internal error.

8300999

Unknown error code.

示例:

  1. let callback = data => {
  2. console.log("on simStateChange, data:" + JSON.stringify(data));
  3. }
  4. observer.on('simStateChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('simStateChange', callback);
  7. observer.off('simStateChange');

LockReason8+

SIM卡锁类型。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.StateRegistry。

名称

说明

SIM_NONE

0

无锁。

SIM_PIN

1

PIN锁。

SIM_PUK

2

PUK锁。

SIM_PN_PIN

3

网络PIN锁。

SIM_PN_PUK

4

网络PUK锁。

SIM_PU_PIN

5

子网PIN锁。

SIM_PU_PUK

6

子网PUK锁。

SIM_PP_PIN

7

服务提供商PIN锁。

SIM_PP_PUK

8

服务提供商PUK锁。

SIM_PC_PIN

9

组织PIN锁。

SIM_PC_PUK

10

组织PUK锁。

SIM_SIM_PIN

11

SIM PIN锁。

SIM_SIM_PUK

12

SIM PUK锁。

SimStateData7+

SIM卡类型和状态。

系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.StateRegistry。

名称

类型

必填

说明

type

CardType

SIM卡类型。

state

SimState

SIM卡状态。

reason8+

LockReason

SIM卡锁类型。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号