我希望在信号强度高于5时发送短信(我相信这是发送短信所需的最小信号)。但是,我想要一种可靠的方法来检查这一点,因此检查信号强度似乎是最好的选择,因为它也会覆盖飞机模式。
一个重要的限制是在API级别17中添加了CellSignalStrength,并且需要我的代码才能在API级别8及更高级别上工作。
答案 0 :(得分:0)
在android.telephony.SignalStrenght中有一个东西 - SignalStrength
该类包含获取各种网络强度的方法,例如:
getGsmSignalStrength()
为您提供0-31 31范围内的数据(99无效)
对于 CDMA ,还有其他方法,如getCdmaDbm(),它以dBm为单位给出值,因此您应该将它们转换为您的比例。
[编辑]使用示例
telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
final PhoneStateListener mListener = new PhoneStateListener() {
@Override
public void onSignalStrengthsChanged(SignalStrength sStrength) {
//get your signals data
}
};
// Register the listener for the telephony manager
telephonyManager.listen(mListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);