如何在Android中检测信号强度?

时间:2016-02-13 12:51:18

标签: android

我希望在信号强度高于5时发送短信(我相信这是发送短信所需的最小信号)。但是,我想要一种可靠的方法来检查这一点,因此检查信号强度似乎是最好的选择,因为它也会覆盖飞机模式。

一个重要的限制是在API级别17中添加了CellSignalStrength,并且需要我的代码才能在API级别8及更高级别上工作。

1 个答案:

答案 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);