3 信号格的获取
MobileSignalController
@Override
public int getCurrentIconId() {
if (mCurrentState.iconGroup == TelephonyIcons.CARRIER_NETWORK_CHANGE) {
return SignalDrawable.getCarrierChangeState(getNumLevels());
} else if (mCurrentState.connected) {
int level = mCurrentState.level; //信号强度等级,即信号格
if (mConfig.inflateSignalStrengths) { //系统默认false,不走该分支
level++;
}
return SignalDrawable.getState(level, getNumLevels(),
mCurrentState.inetCondition == 0);
} else if (mCurrentState.enabled) {
return SignalDrawable.getEmptyState(getNumLevels());
} else {
return 0;
}
}
对于mCurrentState.level 信号格的等级获取是在函数updateTelephony方法中有
if (mCurrentState.connected) {
if (!mSignalStrength.isGsm