我想在调用API时获取设备的信号强度。我已经搜索了所有相关的帖子,但尚未成功。
因此,我想要获得信号强度,例如
SignalStrength ss = null ; // some initialization
int n = ss.getGsmSignalStrength();
但是在使用时,很明显我会得到空指针异常,因为我已将SignalStrength
初始化为null。但我不知道如何初始化它。
另外,我不想使用PhoneStateListener
,因为它只在信号变化时触发。
我正在使用以下代码获取信号强度
TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
CellInfoGsm cellinfogsm = (CellInfoGsm)telephonyManager.getAllCellInfo().get(0);
CellSignalStrengthGsm cellSignalStrengthGsm = cellinfogsm.getCellSignalStrength();
cellSignalStrengthGsm.getDbm();
但我不想使用
CellSignalStrength
,因为它只适用于API级别17以上,并且在级别17以下无法工作。我希望代码在API级别7+上能够正常工作。或者是否有其他方法,可以在调用API时获取信号强度的值?
PhoneStateListener
,因为它只在更改时触发,但正如其他问题所指出的那样,当你的应用程序启动时,它会触发。此时,你只需要关心它何时发生变化。 - blahdiblah