HarmonyOS API:@ohos.telephony.radio (网络搜索)
版本:v3.1 Beta
@ohos.telephony.radio (网络搜索)
更新时间: 2023-02-17 09:19
网络搜索模块提供管理网络搜索的一些基础功能,包括获取当前接入的CS域和PS域无线接入技术、获取网络状态、获取当前选网模式、获取注册网络所在国家的ISO国家码、获取主卡所在卡槽的索引号、获取指定SIM卡槽对应的注册网络信号强度信息列表、获取运营商名称、获取设备的指定卡槽的IMEI、获取设备的指定卡槽的MEID、获取设备的指定卡槽的唯一设备ID,判断当前设备是否支持5G(NR)、判断主卡的Radio是否打开等。
说明
本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import radio from '@ohos.telephony.radio'
radio.getRadioTech
getRadioTech(slotId: number, callback: AsyncCallback<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}>): void
获取当前接入的CS域和PS域无线接入技术。使用callback异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<{psRadioTech: RadioTechnology, csRadioTech:RadioTechnology}> | 是 | 回调函数。 |
示例:
let slotId = 0;
radio.getRadioTech(slotId, (err, data) =>{
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getRadioTech
getRadioTech(slotId: number): Promise<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}>
获取当前接入的CS域和PS域无线接入技术。使用Promise异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
Promise<{psRadioTech: RadioTechnology, csRadioTech: RadioTechnology}> | 以Promise形式返回获取当前接入的CS域和PS域技术。 |
示例:
let slotId = 0;
let promise = radio.getRadioTech(slotId);
promise.then(data => {
console.log(`getRadioTech success, data->${JSON.stringify(data)}`);
}).catch(err => {
console.log(`getRadioTech failed, err->${JSON.stringify(err)}`);
});
radio.getNetworkState
getNetworkState(callback: AsyncCallback<NetworkState>): void
获取网络状态。使用callback异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<NetworkState> | 是 | 回调函数。 |
示例:
radio.getNetworkState((err, data) =>{
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getNetworkState
getNetworkState(slotId: number, callback: AsyncCallback<NetworkState>): void
获取网络状态。使用callback异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<NetworkState> | 是 | 回调函数。 |
示例:
let slotId = 0;
radio.getNetworkState(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getNetworkState
getNetworkState(slotId?: number): Promise<NetworkState>
获取网络状态。使用Promise异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 否 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
Promise<NetworkState> | 以Promise形式返回网络状态。 |
示例:
let slotId = 0;
let promise = radio.getNetworkState(slotId);
promise.then(data => {
console.log(`getNetworkState success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.log(`getNetworkState failed, promise: err->${JSON.stringify(err)}`);
});
radio.getNetworkSelectionMode
getNetworkSelectionMode(slotId: number, callback: AsyncCallback<NetworkSelectionMode>): void
获取当前选网模式。使用callback异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<NetworkSelectionMode> | 是 | 回调函数。 |
示例:
let slotId = 0;
radio.getNetworkSelectionMode(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getNetworkSelectionMode
getNetworkSelectionMode(slotId: number): Promise<NetworkSelectionMode>
获取当前选网模式。使用Promise异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
Promise<NetworkSelectionMode> | 以Promise形式返回当前选网模式。 |
示例:
let slotId = 0;
let promise = radio.getNetworkSelectionMode(slotId);
promise.then(data => {
console.log(`getNetworkSelectionMode success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.log(`getNetworkSelectionMode failed, promise: err->${JSON.stringify(err)}`);
});
radio.getISOCountryCodeForNetwork7+
getISOCountryCodeForNetwork(slotId: number, callback: AsyncCallback<string>): void
获取注册网络所在国家的ISO国家码。使用callback异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<string> | 是 | 回调函数。返回国家码,例如:CN(中国)。 |
示例:
let slotId = 0;
radio.getISOCountryCodeForNetwork(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getISOCountryCodeForNetwork7+
getISOCountryCodeForNetwork(slotId: number): Promise<string>
获取注册网络所在国家的ISO国家码。使用Promise异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
Promise<string> | 以Promise形式返回注册网络所在国家的ISO国家码,例如CN(中国)。 |
示例:
let slotId = 0;
let promise = radio.getISOCountryCodeForNetwork(slotId);
promise.then(data => {
console.log(`getISOCountryCodeForNetwork success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.log(`getISOCountryCodeForNetwork failed, promise: err->${JSON.stringify(err)}`);
});
radio.getPrimarySlotId7+
getPrimarySlotId(callback: AsyncCallback<number>): void
获取主卡所在卡槽的索引号。使用callback异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<number> | 是 | 回调函数 |
示例:
radio.getPrimarySlotId((err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getPrimarySlotId7+
getPrimarySlotId(): Promise<number>
获取主卡所在卡槽的索引号。使用Promise异步回调。
系统能力:SystemCapability.Telephony.CoreService
返回值:
类型 | 说明 |
Promise<number> | 以Promise形式返回获取设备主卡所在卡槽的索引号的结果。 |
示例:
let promise = radio.getPrimarySlotId();
promise.then(data => {
console.log(`getPrimarySlotId success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.error(`getPrimarySlotId failed, promise: err->${JSON.stringify(err)}`);
});
radio.getSignalInformation7+
getSignalInformation(slotId: number, callback: AsyncCallback<Array<SignalInformation>>): void
获取指定SIM卡槽对应的注册网络信号强度信息列表。使用callback异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<Array<SignalInformation>> | 是 | 回调函数,返回SignalInformation对象的数组。 |
示例:
let slotId = 0;
radio.getSignalInformation(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getSignalInformation7+
getSignalInformation(slotId: number): Promise<Array<SignalInformation>>
获取指定SIM卡槽对应的注册网络信号强度信息列表。使用Promise异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
Promise<Array<SignalInformation>> | 以Promise形式返回网络信号强度SignalInformation对象的数组。 |
示例:
let slotId = 0;
let promise = radio.getSignalInformation(slotId);
promise.then(data => {
console.log(`getSignalInformation success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.error(`getSignalInformation failed, promise: err->${JSON.stringify(err)}`);
});
radio.isNrSupported7+
isNrSupported(): boolean
判断当前设备是否支持5G(NR)。
系统能力:SystemCapability.Telephony.CoreService
返回值:
类型 | 说明 |
boolean | - true:支持 - false:不支持 |
示例:
let result = radio.isNrSupported();
console.log("Result: "+ result);
radio.isNrSupported8+
isNrSupported(slotId: number): boolean
判断当前设备是否支持5G(NR)。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
boolean | - true:支持 - false:不支持 |
示例:
let slotId = 0;
let result = radio.isNrSupported(slotId);
console.log("Result: "+ result);
radio.isRadioOn7+
isRadioOn(callback: AsyncCallback<boolean>): void
判断主卡的Radio是否打开。使用callback异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
callback | AsyncCallback<boolean> | 是 | 回调函数。 - true:Radio打开 - false:Radio关闭 |
示例:
radio.isRadioOn((err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.isRadioOn7+
isRadioOn(slotId: number, callback: AsyncCallback<boolean>): void
判断指定卡槽位的Radio是否打开。使用callback异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<boolean> | 是 | 回调函数。 - true:Radio打开 - false:Radio关闭 |
示例:
let slotId = 0;
radio.isRadioOn(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.isRadioOn7+
isRadioOn(slotId?: number): Promise<boolean>
判断Radio是否打开。使用Promise异步回调。
需要权限:ohos.permission.GET_NETWORK_INFO
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 否 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 如果不指定slotId,默认判断主卡Radio是否打开 |
返回值:
类型 | 说明 |
Promise<boolean> | 以Promise形式返回判断Radio是否打开的结果。 - true:Radio打开 - false:Radio关闭 |
示例:
let slotId = 0;
let promise = radio.isRadioOn(slotId);
promise.then(data => {
console.log(`isRadioOn success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.error(`isRadioOn failed, promise: err->${JSON.stringify(err)}`);
});
radio.getOperatorName7+
getOperatorName(slotId: number, callback: AsyncCallback<string>): void
获取运营商名称。使用callback异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
callback | AsyncCallback<string> | 是 | 回调函数,返回运营商名称,例如:中国移动。 |
示例:
let slotId = 0;
radio.getOperatorName(slotId, (err, data) => {
console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});
radio.getOperatorName7+
getOperatorName(slotId: number): Promise<string>
获取运营商名称。使用Promise异步回调。
系统能力:SystemCapability.Telephony.CoreService
参数:
参数名 | 类型 | 必填 | 说明 |
slotId | number | 是 | 卡槽ID。 - 0:卡槽1 - 1:卡槽2 |
返回值:
类型 | 说明 |
Promise<string> | 以Promise形式返回运营商名称,例如:中国移动。 |
示例:
let slotId = 0;
let promise = radio.getOperatorName(slotId);
promise.then(data => {
console.log(`getOperatorName success, promise: data->${JSON.stringify(data)}`);
}).catch(err => {
console.log(`getOperatorName failed, promise: err->${JSON.stringify(err)}`);
});
RadioTechnology
无线接入技术。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 值 | 说明 |
RADIO_TECHNOLOGY_UNKNOWN | 0 | 未知无线接入技术(RAT)。 |
RADIO_TECHNOLOGY_GSM | 1 | 无线接入技术GSM(Global System For Mobile Communication)。 |
RADIO_TECHNOLOGY_1XRTT | 2 | 无线接入技术1XRTT(Single-Carrier Radio Transmission Technology)。 |
RADIO_TECHNOLOGY_WCDMA | 3 | 无线接入技术WCDMA(Wideband Code Division Multiple Access)。 |
RADIO_TECHNOLOGY_HSPA | 4 | 无线接入技术HSPA(High Speed Packet Access)。 |
RADIO_TECHNOLOGY_HSPAP | 5 | 无线接入技术HSPAP(High Speed packet access (HSPA+) )。 |
RADIO_TECHNOLOGY_TD_SCDMA | 6 | 无线接入技术TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 |
RADIO_TECHNOLOGY_EVDO | 7 | 无线接入技术EVDO(Evolution Data Only)。 |
RADIO_TECHNOLOGY_EHRPD | 8 | 无线接入技术EHRPD(Evolved High Rate Package Data)。 |
RADIO_TECHNOLOGY_LTE | 9 | 无线接入技术LTE(Long Term Evolution)。 |
RADIO_TECHNOLOGY_LTE_CA | 10 | 无线接入技术LTE_CA(Long Term Evolution_Carrier Aggregation)。 |
RADIO_TECHNOLOGY_IWLAN | 11 | 无线接入技术IWLAN(Industrial Wireless LAN)。 |
RADIO_TECHNOLOGY_NR | 12 | 无线接入技术NR(New Radio)。 |
SignalInformation
网络信号强度信息对象。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 类型 | 必填 | 说明 |
signalType | 是 | 网络信号强度类型。 | |
signalLevel | number | 是 | 网络信号强度等级。 |
NetworkType
网络类型。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 值 | 说明 |
NETWORK_TYPE_UNKNOWN | 0 | 未知网络类型。 |
NETWORK_TYPE_GSM | 1 | 网络类型为GSM(Global System For Mobile Communication)。 |
NETWORK_TYPE_CDMA | 2 | 网络类型为CDMA(Code Division Multiple Access)。 |
NETWORK_TYPE_WCDMA | 3 | 网络类型为WCDMA(Wideband Code Division Multiple Access)。 |
NETWORK_TYPE_TDSCDMA | 4 | 网络类型为TDSCDMA(TimeDivision-Synchronous Code Division Multiple Access)。 |
NETWORK_TYPE_LTE | 5 | 网络类型为LTE(Long Term Evolution)。 |
NETWORK_TYPE_NR | 6 | 网络类型为5G NR(New Radio)。 |
NetworkState
网络注册状态。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 类型 | 必填 | 说明 |
longOperatorName | string | 是 | 注册网络的长运营商名称。 |
shortOperatorName | string | 是 | 注册网络的短运营商名称。 |
plmnNumeric | string | 是 | 注册网络的PLMN码。 |
isRoaming | boolean | 是 | 是否处于漫游状态。 |
regState | 是 | 设备的网络注册状态。 | |
cfgTech8+ | 是 | 设备的无线接入技术。 | |
nsaState | 是 | 设备的NSA网络注册状态。 | |
isCaActive | boolean | 是 | CA的状态。 |
isEmergency | boolean | 是 | 此设备是否只允许拨打紧急呼叫。 |
RegState
网络注册状态。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 值 | 说明 |
REG_STATE_NO_SERVICE | 0 | 设备不能使用任何服务,包括数据业务、短信、通话等。 |
REG_STATE_IN_SERVICE | 1 | 设备可以正常使用服务,包括数据业务、短信、通话等。 |
REG_STATE_EMERGENCY_CALL_ONLY | 2 | 设备只能使用紧急呼叫业务。 |
REG_STATE_POWER_OFF | 3 | 蜂窝无线电已关闭,modem下电,无法和网侧进行通信。 |
NsaState
非独立组网状态。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 值 | 说明 |
NSA_STATE_NOT_SUPPORT | 1 | 设备在不支持NSA的LTE小区下处于空闲状态或连接状态。 |
NSA_STATE_NO_DETECT | 2 | 在支持NSA但不支持NR覆盖检测的LTE小区下,设备处于空闲状态。 |
NSA_STATE_CONNECTED_DETECT | 3 | 设备在LTE小区下连接到LTE网络支持NSA和NR覆盖检测。 |
NSA_STATE_IDLE_DETECT | 4 | 支持NSA和NR覆盖检测的LTE小区下设备处于空闲状态。 |
NSA_STATE_DUAL_CONNECTED | 5 | 设备在支持NSA的LTE小区下连接到LTE + NR网络。 |
NSA_STATE_SA_ATTACHED | 6 | 设备在5GC附着时在NG-RAN小区下空闲或连接到NG-RAN小区。 |
NetworkSelectionMode
选网模式。
系统能力:以下各项对应的系统能力均为SystemCapability.Telephony.CoreService。
名称 | 值 | 说明 |
NETWORK_SELECTION_UNKNOWN | 0 | 未知选网模式。 |
NETWORK_SELECTION_AUTOMATIC | 1 | 自动选网模式。 |
NETWORK_SELECTION_MANUAL | 2 | 手动选网模式。 |