电子说
电话服务子系统,提供了一系列的API用于获取无线蜂窝网络和SIM卡相关的一些信息。应用可以通过调用API来获取当前注册网络名称、网络服务状态、信号强度以及SIM卡的相关信息。
各个模块主要作用如下:
图 1 子系统架构图
base/telephony/
├── core_service # 核心服务
├── call_manager # 通话管理
├── cellular_call # 蜂窝通话
├── cellular_data # 蜂窝数据
├── sms_mms # 短彩信
├── state_registry # 状态订阅
├── data_storage # 数据存储
└── ril_adapter # RIL Adapter
具体请参考子模块README,下面以获取当前蜂窝网络信号信息和观察蜂窝网络状态变化为例,说明电话服务子系统接口调用请求和状态订阅的使用方法。
// 引入包名
import radio from "@ohos.telephony.radio";
// 参数赋值
let slotId = 0;
// 调用接口【callback方式】
radio.getSignalInformation(slotId, (err, value) = > {
if (err) {
// 接口调用失败,err非空
console.error(`failed to getSignalInformation because ${err.message}`);
return;
}
// 接口调用成功,err为空
for (let i = 0; i < value.length; i++) {
console.log(`success to getSignalInformation: type is ${value[i].signalType}, level is ${value[i].signalLevel}`);
}
});
// 调用接口【Promise方式】
let promise = radio.getSignalInformation(slotId);
promise.then((value) = > {
// 接口调用成功,此处可以实现成功场景分支代码。
for (let i = 0; i < value.length; i++) {
console.log(`success to getSignalInformation: type is ${value[i].signalType}, level is ${value[i].signalLevel}`);
}
}).catch((err) = > {
// 接口调用失败,此处可以实现失败场景分支代码。
console.error(`failed to getSignalInformation because ${err.message}`);
});
添加观察事件
// 引入包名
import observer from '@ohos.telephony.observer';
// 开启订阅
observer.on('networkStateChange', {slotId: 0}, (value) = > {
console.log(`network state is ` + value);
});
停止观察
从@ohos.telephony.observer.d.ts中导入observer命名空间。
调用off(type: 'networkStateChange')方法,传入添加观察事件时的callback对象(可选)。
// 引入包名
import observer from '@ohos.telephony.observer';
// 关闭订阅
observer.off('networkStateChange');
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !