Android:如何确定应用程序是否以无GSM信号或低信号启动?

时间:2013-06-03 14:30:46

标签: android callback gsm signal-strength phone-state-listener

我写了一段Android代码,注册了PhoneStateListener和。{ 当有变化时,报告GSM信号强度值 onSignalStrengthsChanged回调。一切正常,但我想拥有 第一次改变之前的初始信号强度发生..有没有办法 在onCreate方法结束之前找出GSM信号强度 (参见代码末尾的注释行)?

这是我的代码:

public class MainActivity extends Activity {

private int mStrength;
private PhoneStateListener phoneStateListener;
private TelephonyManager telephonyManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    phoneStateListener = new PhoneStateListener() {
        @Override
        public void onSignalStrengthsChanged(SignalStrength signalStrength){
             super.onSignalStrengthsChanged(signalStrength);
             int currStrength = signalStrength.getGsmSignalStrength();
             mStrength = currStrength;

             Toast.makeText(getApplicationContext(),
                          "signal:" + String.valueOf(mStrength),
                          Toast.LENGTH_SHORT).show();
        }               
    };

    telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.listen(phoneStateListener,
               PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

    // What is value of GSM signal here? ...
    // Log.d("SignalStrength:", "??");

}

}

1 个答案:

答案 0 :(得分:0)

您是否可以使用API​​级别7中添加的this SignalStrength class