我正在使用以下代码捕获 LTE 信号的 RSSI 值:
cInfoList = telephony_manager.getAllCellInfo()
for (CellInfo info : cInfoList){
if (info instanceof CellInfoLte) {
CellSignalStrengthLte signalstrength_lte = ((CellInfoLte) info).getCellSignalStrength();
displayAsu.setText(signalstrength_lte.getAsuLevel() + "");
displayDbm.setText(signalstrength_lte.getDbm() + "");
}
}
(*注意:我只是简化了我的代码:for-loop 不会覆盖文本字段。)
在一部手机(LG G4)中,我得到了有意义的值:Asu_level=32,dbm=-108
但在另一部手机(三星 Galaxy S6)中,我得到无效值:Asu_level=97, dbm=1022
在三星手机的 Settings->AboutPhone->Status->SignalStrength 我看到-107dBm 33 asu(这是有道理的)
LG G4:Android 5.1、API 22和 三星 Galaxy S6:Android 5.0.2、API 21
为什么相同的代码在不同的手机上显示不同的行为(Asu 级别)?