文档管理中心

@ohos.telephony.observer (电话服务状态监听)

Phone23+PC/2in126.0.0+Tablet23+TV26.0.0+Wearable23+Lite Wearable26.0.0+

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

说明

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

导入模块

收起
自动换行
深色代码主题
复制
  1. import { observer } from '@kit.TelephonyKit';

NetworkState

Phone23+Tablet23+Wearable23+

type NetworkState = radio.NetworkState

网络注册状态。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
radio.NetworkState 网络注册状态。

SignalInformation

Phone23+Tablet23+Wearable23+

type SignalInformation = radio.SignalInformation

网络信号强度信息对象。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
radio.SignalInformation 网络信号强度信息对象。

DataConnectState

Phone23+Tablet23+Wearable23+

type DataConnectState = data.DataConnectState

描述蜂窝数据链路连接状态。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
data.DataConnectState 描述蜂窝数据链路连接状态。

RatType

Phone23+Tablet23+Wearable23+

type RatType = radio.RadioTechnology

无线接入技术。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
radio.RadioTechnology 无线接入技术。

DataFlowType

Phone23+Tablet23+Wearable23+

type DataFlowType = data.DataFlowType

描述蜂窝数据流类型。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
data.DataFlowType 描述蜂窝数据流类型。

CallState

Phone23+Tablet23+Wearable23+

type CallState = call.CallState

通话状态码。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
call.CallState 通话状态码(去电过程仅通知CALL_STATE_OFFHOOK状态)。

CCallState23+

Phone23+Tablet23+Wearable23+

type CCallState = call.CCallState

运营商通话状态码。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
call.CCallState 通话状态码(运营商通话状态码)。

CardType

Phone23+Tablet23+Wearable23+

type CardType = sim.CardType

卡类型。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
sim.CardType 卡类型。

SimState

Phone23+Tablet23+Wearable23+

type SimState = sim.SimState

SIM卡状态。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
sim.SimState SIM卡状态。

TelCallState21+

Phone23+Tablet23+Wearable23+

type TelCallState = call.TelCallState

通话状态码。

系统能力:SystemCapability.Telephony.StateRegistry

展开
类型 说明
call.TelCallState 通话状态码(去电过程通知去电号码状态TEL_CALL_STATE_OFFHOOK和去电接通状态TEL_CALL_STATE_CONNECTED)。

observer.on('networkStateChange')

Phone23+Tablet23+Wearable23+

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

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

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 网络状态变化事件,参数固定为'networkStateChange'。
callback Callback<NetworkState> 回调函数,返回网络状态对象。参考radio的NetworkState

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. try {
  2. observer.on('networkStateChange', (data: observer.NetworkState) => {
  3. console.info("on networkStateChange, data:" + JSON.stringify(data));
  4. });
  5. } catch (err) {
  6. console.error(`observer.on networkStateChange failed: ${JSON.stringify(err)}`);
  7. }

observer.on('networkStateChange')

Phone23+Tablet23+Wearable23+

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

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

需要权限:ohos.permission.GET_NETWORK_INFO

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 网络状态变化事件,参数固定为'networkStateChange'。
options ObserverOptions 电话相关事件订阅参数可选项。
callback Callback<NetworkState> 回调函数,返回网络状态对象。参考radio的NetworkState

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied.
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. // 设置订阅参数,指定卡槽ID为0(卡槽1)
  2. let options: observer.ObserverOptions = {
  3. slotId: 0
  4. }
  5. // 订阅指定卡槽的网络状态变化事件
  6. observer.on('networkStateChange', options, (data: observer.NetworkState) => {
  7. console.info("on networkStateChange, data:" + JSON.stringify(data));
  8. });

observer.off('networkStateChange')

Phone23+Tablet23+Wearable23+

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. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let callback: (data: observer.NetworkState) => void = (data: observer.NetworkState) => {
  2. console.info("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')

Phone23+Tablet23+Wearable23+

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

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 信号状态变化事件,参数固定为'signalInfoChange'。
callback Callback<Array<SignalInformation>> 回调函数,返回信号强度对象。参考radio的SignalInformation

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { radio } from '@kit.TelephonyKit';
  2. observer.on('signalInfoChange', (data: Array<radio.SignalInformation>) => {
  3. console.info("on signalInfoChange, data:" + JSON.stringify(data));
  4. });

observer.on('signalInfoChange')

Phone23+Tablet23+Wearable23+

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

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 信号状态变化事件,参数固定为'signalInfoChange'。
options ObserverOptions 电话相关事件订阅参数可选项。
callback Callback<Array<SignalInformation>> 回调函数,返回信号强度对象。参考radio的SignalInformation

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { radio } from '@kit.TelephonyKit';
  2. let options: observer.ObserverOptions = {
  3. slotId: 0
  4. }
  5. observer.on('signalInfoChange', options, (data: Array<radio.SignalInformation>) => {
  6. console.info("on signalInfoChange, data:" + JSON.stringify(data));
  7. });

observer.off('signalInfoChange')

Phone23+Tablet23+Wearable23+

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

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

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 信号状态变化事件,参数固定为'signalInfoChange'。
callback Callback<Array<SignalInformation>> 回调函数,返回信号强度对象。参考radio的SignalInformation

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { radio } from '@kit.TelephonyKit';
  2. let callback: (data: Array<radio.SignalInformation>) => void = (data: Array<radio.SignalInformation>) => {
  3. console.info("on signalInfoChange, data:" + JSON.stringify(data));
  4. }
  5. observer.on('signalInfoChange', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. observer.off('signalInfoChange', callback);
  8. observer.off('signalInfoChange');

observer.on('callStateChange')

Phone23+Tablet23+Wearable23+

on(type: 'callStateChange', callback: Callback<CallStateInfo>): void

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 通话状态变化事件,参数固定为"callStateChange"。
callback Callback<CallStateInfo>

回调函数,返回通话状态信息对象。

应用可获取到CallStateInfo。

其中,三方应用仅能获取state通话状态。number受系统权限管控,仅面向系统应用开放。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. observer.on('callStateChange', (data: observer.CallStateInfo) => {
  2. console.info("on callStateChange, data:" + JSON.stringify(data));
  3. });

observer.on('callStateChange')

Phone23+Tablet23+Wearable23+

on(type: 'callStateChange', options: ObserverOptions, callback: Callback<CallStateInfo>): void

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 通话状态变化事件,参数固定为"callStateChange"。
options ObserverOptions 电话相关事件订阅参数可选项。
callback Callback<CallStateInfo>

回调函数,返回通话状态信息对象。

应用可获取到CallStateInfo。

其中,三方应用仅能获取state通话状态。number受系统权限管控,仅面向系统应用开放。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let options: observer.ObserverOptions = {
  2. slotId: 0
  3. }
  4. observer.on('callStateChange', options, (data: observer.CallStateInfo) => {
  5. console.info("on callStateChange, data:" + JSON.stringify(data));
  6. });

observer.off('callStateChange')

Phone23+Tablet23+Wearable23+

off(type: 'callStateChange', callback?: Callback<CallStateInfo>): void

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

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 通话状态变化事件,参数固定为"callStateChange"。
callback Callback<CallStateInfo>

回调函数,返回通话状态信息对象。

其中,三方应用仅能获取state通话状态。number受系统权限管控,仅面向系统应用开放。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let callback: (data: observer.CallStateInfo) => void = (data: observer.CallStateInfo) => {
  2. console.info("on callStateChange, data:" + JSON.stringify(data));
  3. }
  4. observer.on('callStateChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('callStateChange', callback);
  7. observer.off('callStateChange');

observer.on('callStateChangeEx')21+

Phone23+Tablet23+Wearable23+

on(type: 'callStateChangeEx', callback: Callback<TelCallState>, options?: ObserverOptions): void

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 通话状态变化事件,参数固定为"callStateChangeEx"。
callback Callback<TelCallState>

回调函数,返回通话状态对象。

应用可获取到TelCallState。

options ObserverOptions 电话相关事件订阅参数可选项,指定事件订阅的卡槽ID,默认为当前默认数据卡槽ID。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
8800001 Invalid parameter value.
8800002 Service connection failed.
8800003 System internal error.
8800999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { call } from '@kit.TelephonyKit';
  2. // 定义通话状态变化拓展事件回调
  3. let callback: (data: call.TelCallState) => void = (data: call.TelCallState) => {
  4. console.info("on callStateChangeEx, data:" + JSON.stringify(data));
  5. }
  6. // 设置订阅参数,指定卡槽ID
  7. let options: observer.ObserverOptions = {
  8. slotId: 0
  9. }
  10. try {
  11. // 订阅通话状态变化拓展事件(指定卡槽)
  12. observer.on('callStateChangeEx', callback, options);
  13. // 订阅通话状态变化拓展事件(不指定卡槽,监听所有卡槽)
  14. observer.on('callStateChangeEx', callback);
  15. } catch (err) {
  16. console.error(`observer.on callStateChangeEx failed: ${JSON.stringify(err)}`);
  17. }

observer.off('callStateChangeEx')21+

Phone23+Tablet23+Wearable23+

off(type: 'callStateChangeEx', callback?: Callback<TelCallState>): void

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

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 通话状态变化事件,参数固定为'callStateChangeEx'。
callback Callback<TelCallState>

回调函数,返回通话状态对象。参考call的TelCallState

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
8800001 Invalid parameter value.
8800002 Service connection failed.
8800003 System internal error.
8800999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { call } from '@kit.TelephonyKit';
  2. let callback: (data: call.TelCallState) => void = (data: call.TelCallState) => {
  3. console.info("on callStateChangeEx, data:" + JSON.stringify(data));
  4. }
  5. observer.on('callStateChangeEx', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. observer.off('callStateChangeEx', callback);
  8. observer.off('callStateChangeEx');

observer.on('cellularDataConnectionStateChange')7+

Phone23+Tablet23+Wearable23+

on(type: 'cellularDataConnectionStateChange', callback: Callback<DataConnectionStateInfo>): void

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。
callback Callback<DataConnectionStateInfo> 回调函数,返回蜂窝数据链路连接状态信息对象。参考data的DataConnectState,radio的RadioTechnology

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. observer.on('cellularDataConnectionStateChange', (data: observer.DataConnectionStateInfo) => {
  2. console.info("on cellularDataConnectionStateChange, data:" + JSON.stringify(data));
  3. });

observer.on('cellularDataConnectionStateChange')7+

Phone23+Tablet23+Wearable23+

on(type: 'cellularDataConnectionStateChange', options: ObserverOptions, callback: Callback<DataConnectionStateInfo>): void

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。
options ObserverOptions 电话相关事件订阅参数可选项。
callback Callback<DataConnectionStateInfo> 回调函数,返回蜂窝数据链路连接状态信息对象。参考data的DataConnectState,radio的RadioTechnology

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let options: observer.ObserverOptions = {
  2. slotId: 0
  3. }
  4. observer.on('cellularDataConnectionStateChange', options, (data: observer.DataConnectionStateInfo) => {
  5. console.info("on cellularDataConnectionStateChange, data:" + JSON.stringify(data));
  6. });

observer.off('cellularDataConnectionStateChange')7+

Phone23+Tablet23+Wearable23+

off(type: 'cellularDataConnectionStateChange', callback?: Callback<DataConnectionStateInfo>): void

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

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 蜂窝数据链路连接状态事件,参数固定为'cellularDataConnectionStateChange'。
callback Callback<DataConnectionStateInfo> 回调函数,返回蜂窝数据链路连接状态信息对象。参考data的DataConnectState,radio的RadioTechnology

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let callback: (data: observer.DataConnectionStateInfo) => void = (data: observer.DataConnectionStateInfo) => {
  2. console.info("on cellularDataConnectionStateChange, data:" + JSON.stringify(data));
  3. }
  4. observer.on('cellularDataConnectionStateChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('cellularDataConnectionStateChange', callback);
  7. observer.off('cellularDataConnectionStateChange');

observer.on('cellularDataFlowChange')7+

Phone23+Tablet23+Wearable23+

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

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。
callback Callback<DataFlowType> 回调函数,返回数据流状态对象。参考data的DataFlowType

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { data } from '@kit.TelephonyKit';
  2. observer.on('cellularDataFlowChange', (data: data.DataFlowType) => {
  3. console.info("on cellularDataFlowChange, data:" + JSON.stringify(data));
  4. });

observer.on('cellularDataFlowChange')7+

Phone23+Tablet23+Wearable23+

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

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。
options ObserverOptions 电话相关事件订阅参数可选项。
callback Callback<DataFlowType> 回调函数,返回数据流状态对象。参考data的DataFlowType

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { data } from '@kit.TelephonyKit';
  2. let options: observer.ObserverOptions = {
  3. slotId: 0
  4. }
  5. observer.on('cellularDataFlowChange', options, (data: data.DataFlowType) => {
  6. console.info("on cellularDataFlowChange, data:" + JSON.stringify(data));
  7. });

observer.off('cellularDataFlowChange')7+

Phone23+Tablet23+Wearable23+

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

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

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 蜂窝数据业务的上下行数据流状态事件,参数固定为'cellularDataFlowChange'。
callback Callback<DataFlowType> 回调函数,返回数据流状态对象。参考data的DataFlowType

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { data } from '@kit.TelephonyKit';
  2. let callback: (data: data.DataFlowType) => void = (data: data.DataFlowType) => {
  3. console.info("on cellularDataFlowChange, data:" + JSON.stringify(data));
  4. }
  5. observer.on('cellularDataFlowChange', callback);
  6. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  7. observer.off('cellularDataFlowChange', callback);
  8. observer.off('cellularDataFlowChange');

observer.on('simStateChange')7+

Phone23+Tablet23+Wearable23+

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

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

说明

此接口不包含SIM卡的激活状态,具体请参见sim.isSimActive接口。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string SIM卡状态更改事件,参数固定为"simStateChange"。
callback Callback<SimStateData> 回调函数,返回卡状态数据对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. observer.on('simStateChange', (data: observer.SimStateData) => {
  2. console.info("on simStateChange, data:" + JSON.stringify(data));
  3. });

observer.on('simStateChange')7+

Phone23+Tablet23+Wearable23+

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

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string SIM卡状态更改事件,参数固定为"simStateChange"。
options ObserverOptions 电话相关事件订阅参数可选项。
callback Callback<SimStateData> 回调函数,返回卡状态数据对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let options: observer.ObserverOptions = {
  2. slotId: 0
  3. }
  4. observer.on('simStateChange', options, (data: observer.SimStateData) => {
  5. console.info("on simStateChange, data:" + JSON.stringify(data));
  6. });

observer.off('simStateChange')7+

Phone23+Tablet23+Wearable23+

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

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

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string SIM卡状态更改事件,参数固定为"simStateChange"。
callback Callback<SimStateData> 回调函数,返回卡状态数据对象。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let callback: (data: observer.SimStateData) => void = (data: observer.SimStateData) => {
  2. console.info("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');

observer.on('iccAccountInfoChange')10+

Phone23+Tablet23+Wearable23+

on(type: 'iccAccountInfoChange', callback: Callback<void>): void

订阅卡账户变化事件,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 卡账户变化事件,参数固定为"iccAccountInfoChange"。
callback Callback<void> 回调函数。当卡账户变化时触发。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. observer.on('iccAccountInfoChange', () => {
  2. console.info("on iccAccountInfoChange success");
  3. });

observer.off('iccAccountInfoChange')10+

Phone23+Tablet23+Wearable23+

off(type: 'iccAccountInfoChange', callback?: Callback<void>): void

移除订阅卡账户变化事件,使用callback方式作为异步方法。

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
type string 卡账户变化事件,参数固定为"iccAccountInfoChange"。
callback Callback<void> 回调函数。当卡账户变化时触发。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
401 Parameter error. Possible causes: 1. Mandatory parameters are left unspecified. 2. Incorrect parameter types.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. let callback: () => void = () => {
  2. console.info("on iccAccountInfoChange success");
  3. }
  4. observer.on('iccAccountInfoChange', callback);
  5. // 可以指定传入on中的callback取消一个订阅,也可以不指定callback清空所有订阅。
  6. observer.off('iccAccountInfoChange', callback);
  7. observer.off('iccAccountInfoChange');

observer.onGetSimActiveState23+

Phone23+Tablet23+Wearable23+

onGetSimActiveState(slotId: number, callback: Callback<boolean>): void

监听SIM卡激活状态变化,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_TELEPHONY_STATE

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
slotId number

卡槽ID。

- 0:卡槽1。

- 1:卡槽2。

callback Callback<boolean>

回调函数,返回SIM卡是否激活。

- true:激活。

- false:未激活。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { sim } from '@kit.TelephonyKit';
  3. let sislotId = 0;
  4. let simActiveState: Callback<boolean> = (isSimActive: boolean) => {
  5. console.info(`simActiveState slotId ${JSON.stringify(isSimActive)}`);
  6. }
  7. observer.onGetSimActiveState(sislotId, simActiveState);

observer.offGetSimActiveState23+

Phone23+Tablet23+Wearable23+

offGetSimActiveState(callback?: Callback<boolean>): void

取消SIM卡激活状态变化的监听,使用callback方式作为异步方法。

需要权限:ohos.permission.GET_TELEPHONY_STATE

系统能力:SystemCapability.Telephony.StateRegistry

参数:

展开
参数名 类型 必填 说明
callback Callback<boolean>

回调函数,返回SIM卡是否激活。

- true:激活。

- false:未激活。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied.
8300001 Invalid parameter value.
8300002 Service connection failed.
8300003 System internal error.
8300999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { BusinessError } from '@kit.BasicServicesKit';
  2. import { sim } from '@kit.TelephonyKit';
  3. let simActiveState: Callback<boolean> = (isSimActive: boolean) => {
  4. console.info(`simActiveState slotId ${JSON.stringify(isSimActive)}`);
  5. }
  6. observer.offGetSimActiveState(simActiveState);

observer.onCCallStateChange23+

Phone23+Tablet23+Wearable23+

onCCallStateChange(callback: Callback<CCallStateInfo>, options?: ObserverOptions): void

订阅运营商通话状态变化事件并获取通话号码,使用callback方式作为异步方法。

系统能力:SystemCapability.Telephony.StateRegistry

需要权限:ohos.permission.MANAGE_CALL_FOR_DEVICES

参数:

展开
参数名 类型 必填 说明
callback Callback<CCallStateInfo>

回调函数,返回通话状态信息对象。

应用可获取到CCallStateInfo。

options ObserverOptions 电话相关事件订阅参数可选项,指定事件订阅的卡槽ID,默认为当前默认数据卡槽ID。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied
8800001 Invalid parameter value.
8800002 Service connection failed.
8800003 System internal error.
8800999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { call, observer } from '@kit.TelephonyKit';
  2. // 定义运营商通话状态变化回调
  3. let callback: (data: observer.CCallStateInfo) => void = (data: observer.CCallStateInfo) => {
  4. console.info("onCCallStateChange, data:" + JSON.stringify(data));
  5. };
  6. // 设置订阅参数,指定卡槽ID
  7. let options: observer.ObserverOptions = {
  8. slotId: 0
  9. };
  10. try {
  11. // 监听运营商通话状态(指定卡槽)
  12. observer.onCCallStateChange(callback, options);
  13. // 监听运营商通话状态(不指定卡槽)
  14. observer.onCCallStateChange(callback);
  15. } catch (err) {
  16. console.error(`observer.onCCallStateChange failed: ${JSON.stringify(err)}`);
  17. }

observer.offCCallStateChange23+

Phone23+Tablet23+Wearable23+

offCCallStateChange(callback?: Callback<CCallStateInfo>): void

取消订阅运营商通话状态变化事件并获取通话号码,使用callback方式作为异步方法。

说明

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

系统能力:SystemCapability.Telephony.StateRegistry

需要权限:ohos.permission.MANAGE_CALL_FOR_DEVICES

参数:

展开
参数名 类型 必填 说明
callback Callback<CCallStateInfo>

回调函数,返回通话状态信息对象。

应用可获取到CCallStateInfo。

不传入此参数时,取消所有运营商通话状态的监听。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied
8800001 Invalid parameter value.
8800002 Service connection failed.
8800003 System internal error.
8800999 Unknown error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { observer } from '@kit.TelephonyKit';
  2. let callback: (data: observer.CCallStateInfo) => void = (data: observer.CCallStateInfo) => {
  3. console.info("onCCallStateChange, data:" + JSON.stringify(data));
  4. }
  5. observer.offCCallStateChange(callback);
  6. observer.offCCallStateChange();

observer.onCommunicationStateChange

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+Lite Wearable26.0.0+

onCommunicationStateChange(callback: Callback<boolean>, options?:ObserverOptions): void

订阅5A网络状态变化事件,使用callback异步回调。

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

系统能力:SystemCapability.Telephony.StateRegistry

需要权限:ohos.permission.GET_NETWORK_INFO

参数:

展开
参数名 类型 必填 说明
callback Callback<boolean> 回调函数。返回true表示5A状态为使能态;返回false表示5A状态为非使能态。
options ObserverOptions 电话相关事件订阅参数可选项,指定事件订阅的卡槽ID,默认为当前默认数据卡槽ID。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied.

示例:

收起
自动换行
深色代码主题
复制
  1. // 设置订阅参数,指定卡槽ID
  2. let options: observer.ObserverOptions = {
  3. slotId: 0
  4. }
  5. // 定义5A网络状态变化回调
  6. let callback: Callback<boolean> = (isCommunicationStateOn: boolean) => {
  7. console.info(`communicationStateChanged ${JSON.stringify(isCommunicationStateOn)}`);
  8. }
  9. try {
  10. // 订阅5A网络状态变化事件
  11. observer.onCommunicationStateChange(callback, options);
  12. } catch (err) {
  13. console.error(`observer.onCommunicationStateChange failed: ${JSON.stringify(err)}`);
  14. }

observer.offCommunicationStateChange

Phone26.0.0+PC/2in126.0.0+Tablet26.0.0+TV26.0.0+Wearable26.0.0+Lite Wearable26.0.0+

offCommunicationStateChange(callback: Callback<boolean>, options?:ObserverOptions): void

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

起始版本: 26.0.0

模型约束: 此接口仅可在Stage模型下使用。

系统能力:SystemCapability.Telephony.StateRegistry

需要权限:ohos.permission.GET_NETWORK_INFO

参数:

展开
参数名 类型 必填 说明
callback Callback<boolean> 回调函数。返回true表示5A状态为使能态;返回false表示5A状态为非使能态。
options ObserverOptions 电话相关事件订阅参数可选项,指定事件订阅的卡槽ID,默认为当前默认数据卡槽ID。

错误码:

以下错误码的详细介绍请参见通用错误码说明文档电话子系统错误码

展开
错误码ID 错误信息
201 Permission denied.

示例:

收起
自动换行
深色代码主题
复制
  1. let options: observer.ObserverOptions = {
  2. slotId: 0
  3. }
  4. let callback: Callback<boolean> = (isCommunicationStateOn: boolean) => {
  5. console.info(`communicationStateChanged ${JSON.stringify(isCommunicationStateOn)}`);
  6. }
  7. observer.onCommunicationStateChange(callback, options);
  8. observer.offCommunicationStateChange(callback, options);

LockReason8+

Phone23+Tablet23+Wearable23+

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+

Phone23+Tablet23+Wearable23+

SIM卡类型和状态。

系统能力:SystemCapability.Telephony.StateRegistry

展开
名称 类型 只读 可选 说明
type CardType SIM卡类型。
state SimState SIM卡状态。
reason8+ LockReason SIM卡锁类型。

CallStateInfo11+

Phone23+Tablet23+Wearable23+

通话状态相关信息。

系统能力:SystemCapability.Telephony.StateRegistry

展开
名称 类型 只读 可选 说明
state CallState 通话状态。
number string 电话号码。受系统权限管控,仅面向系统应用开放,三方应用无法获取。

CCallStateInfo23+

Phone23+Tablet23+Wearable23+

通话状态相关信息。

系统能力:SystemCapability.Telephony.StateRegistry

展开
名称 类型 只读 可选 说明
state CCallState 通话状态。
teleNumber string 电话号码。

DataConnectionStateInfo11+

Phone23+Tablet23+Wearable23+

数据连接状态相关信息。

系统能力:SystemCapability.Telephony.StateRegistry

展开
名称 类型 只读 可选 说明
state DataConnectState 数据连接状态。
network RatType 网络类型。

ObserverOptions11+

Phone23+Tablet23+Wearable23+

电话相关事件订阅参数可选项。

系统能力:SystemCapability.Telephony.StateRegistry

展开
名称 类型 只读 可选 说明
slotId number

卡槽ID。

- 0:卡槽1

- 1:卡槽2