訂閱管理功能

2024-01-23 16:36 更新

本模塊提供訂閱管理功能,可以訂閱/取消訂閱的事件包括:網(wǎng)絡狀態(tài)變化、信號狀態(tài)變化、通話狀態(tài)變化、蜂窩數(shù)據(jù)鏈路連接狀態(tài)、蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài)、SIM狀態(tài)變化。

說明

本模塊首批接口從API version 6開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

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

observer.on('networkStateChange')

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

訂閱網(wǎng)絡狀態(tài)變化事件,使用callback方式作為異步方法。

需要權(quán)限:ohos.permission.GET_NETWORK_INFO

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

網(wǎng)絡狀態(tài)變化事件,參數(shù)固定為'networkStateChange'。

callback

Callback<NetworkState>

回調(diào)函數(shù)。參考radio的NetworkState

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱指定卡槽位的網(wǎng)絡狀態(tài)變化事件,使用callback方式作為異步方法。

需要權(quán)限:ohos.permission.GET_NETWORK_INFO

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

網(wǎng)絡狀態(tài)變化事件,參數(shù)固定為'networkStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<NetworkState>

回調(diào)函數(shù)。參考radio的NetworkState

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

取消訂閱網(wǎng)絡狀態(tài)變化事件,使用callback方式作為異步方法。

說明

可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

網(wǎng)絡狀態(tài)變化事件,參數(shù)固定為'networkStateChange'。

callback

Callback<NetworkState>

回調(diào)函數(shù)。參考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;

訂閱信號狀態(tài)變化事件,使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

信號狀態(tài)變化事件,參數(shù)固定為'signalInfoChange'。

callback

Callback<Array<SignalInformation>>

回調(diào)函數(shù)。參考radio的SignalInformation

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱指定卡槽位的信號狀態(tài)變化事件,使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

信號狀態(tài)變化事件,參數(shù)固定為'signalInfoChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<Array<SignalInformation>>

回調(diào)函數(shù)。參考radio的SignalInformation

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

取消訂閱信號狀態(tài)變化事件,使用callback方式作為異步方法。

說明

可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

信號狀態(tài)變化事件,參數(shù)固定為'signalInfoChange'。

callback

Callback<Array<SignalInformation>>

回調(diào)函數(shù)。參考radio的SignalInformation

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱通話狀態(tài)變化事件,使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

通話狀態(tài)變化事件,參數(shù)固定為'callStateChange'。

callback

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

回調(diào)函數(shù),參考call的CallState

number:電話號碼

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱通話狀態(tài)變化事件,使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

通話狀態(tài)變化事件,參數(shù)固定為'callStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

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

回調(diào)函數(shù),參考call的CallState

number:電話號碼

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

取消訂閱通話狀態(tài)變化事件,使用callback方式作為異步方法。

說明

可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

通話狀態(tài)變化事件,參數(shù)固定為'callStateChange'。

callback

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

回調(diào)函數(shù),參考call的CallState

number:電話號碼

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱蜂窩數(shù)據(jù)鏈路連接狀態(tài),使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

蜂窩數(shù)據(jù)鏈路連接狀態(tài)事件,參數(shù)固定為'cellularDataConnectionStateChange'。

callback

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

回調(diào)函數(shù),參考data的DataConnectState,radio的RadioTechnology。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱指定卡槽位的蜂窩數(shù)據(jù)鏈路連接狀態(tài),使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

蜂窩數(shù)據(jù)鏈路連接狀態(tài)事件,參數(shù)固定為'cellularDataConnectionStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

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

回調(diào)函數(shù),參考data的DataConnectState,radio的RadioTechnology。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

移除訂閱蜂窩數(shù)據(jù)鏈路連接狀態(tài),使用callback方式作為異步方法。

說明

可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

蜂窩數(shù)據(jù)鏈路連接狀態(tài)事件,參數(shù)固定為'cellularDataConnectionStateChange'。

callback

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

回調(diào)函數(shù),參考data的DataConnectState,radio的RadioTechnology。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài),使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài)狀態(tài)事件,參數(shù)固定為'cellularDataFlowChange'。

callback

Callback<DataFlowType>

回調(diào)函數(shù),參考data的DataFlowType。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

訂閱指定卡槽位的蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài),使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài)事件,參數(shù)固定為'cellularDataFlowChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<DataFlowType>

回調(diào)函數(shù),參考data的DataFlowType。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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;

移除訂閱蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài),使用callback方式作為異步方法。

說明

可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

蜂窩數(shù)據(jù)業(yè)務的上下行數(shù)據(jù)流狀態(tài)事件,參數(shù)固定為'cellularDataFlowChange'。

callback

Callback<DataFlowType>

回調(diào)函數(shù),參考data的DataFlowType

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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狀態(tài)更改事件,使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

sim狀態(tài)更改事件,參數(shù)固定為'simStateChange'。

callback

Callback<SimStateData>

回調(diào)函數(shù)。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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狀態(tài)更改事件,使用callback方式作為異步方法。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

sim狀態(tài)更改事件,參數(shù)固定為'simStateChange'。

slotId

number

卡槽ID。

- 0:卡槽1

- 1:卡槽2

callback

Callback<SimStateData>

回調(diào)函數(shù)。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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狀態(tài)更改事件,使用callback方式作為異步方法。

說明

可以指定傳入on中的callback取消一個訂閱,也可以不指定callback清空所有訂閱。

系統(tǒng)能力:SystemCapability.Telephony.StateRegistry

參數(shù):

參數(shù)名

類型

必填

說明

type

string

sim狀態(tài)更改事件,參數(shù)固定為'simStateChange'。

callback

Callback<SimStateData>

回調(diào)函數(shù)。

錯誤碼:

以下錯誤碼的詳細介紹請參見ohos.telephony(電話子系統(tǒng))錯誤碼錯誤碼。

錯誤碼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卡鎖類型。

系統(tǒng)能力:以下各項對應的系統(tǒng)能力均為SystemCapability.Telephony.StateRegistry。

名稱

說明

SIM_NONE

0

無鎖。

SIM_PIN

1

PIN鎖。

SIM_PUK

2

PUK鎖。

SIM_PN_PIN

3

網(wǎng)絡PIN鎖。

SIM_PN_PUK

4

網(wǎng)絡PUK鎖。

SIM_PU_PIN

5

子網(wǎng)PIN鎖。

SIM_PU_PUK

6

子網(wǎng)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卡類型和狀態(tài)。

系統(tǒng)能力:以下各項對應的系統(tǒng)能力均為SystemCapability.Telephony.StateRegistry。

名稱

類型

必填

說明

type

CardType

SIM卡類型。

state

SimState

SIM卡狀態(tài)。

reason8+

LockReason

SIM卡鎖類型。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號