接口说明
RadioInfoManager类中提供了获取当前网络信号信息列表的方法。
功能分类 |
接口名 |
描述 |
所需权限 |
---|---|---|---|
获取管理对象 |
getInstance(Context context) |
获取网络管理对象。 |
无 |
信号强度信息 |
getSignalInfoList(int slotId) |
获取当前注册蜂窝网络信号强度信息。 |
无 |
开发步骤
- 调用RadioInfoManager的getInstance接口,获取到RadioInfoManager实例。
- 调用getSignalInfoList(slotId)方法,返回所有SignalInformation列表。
- 遍历SignalInformation列表,并分别根据getNetworkType()转换为对应制式的SignalInformation子类对象。
调用子类中的方法,获取信号强度信息。
// 获取RadioInfoManager对象。
RadioInfoManager radioInfoManager = RadioInfoManager.getInstance(context);
// 获取信号信息。
List<SignalInformation> signalList = radioInfoManager.getSignalInfoList(slotId);
// 检查信号信息列表大小。
if (signalList.size() == 0) {
return;
}
// 依次遍历list获取当前驻网networkType对应的信号信息。
LteSignalInformation lteSignal = null;
for (SignalInformation signal : signalList) {
int signalNetworkType = signal.getNetworkType();
if (signalNetworkType == TelephonyConstants.NETWORK_TYPE_LTE) {
lteSignal = (LteSignalInformation) signal;
}
}
// 调用子类中相应方法,获取对应制式的信号强度信息。
int signalLevel = lteSignal != null ? lteSignal.getSignalLevel() : 0;