2

PhoneStateListenerコールバックを介して、変更があったときに GSM 信号強度値を登録して報告する Android コードを作成しましたonSignalStrengthsChanged。すべて正常に動作しますが、最初の変更が発生する前に最初の信号強度を取得したいと考えています。メソッドの終了前に GSM 信号強度を調べる方法はありますonCreateか (コードの最後のコメント行を参照)。

これが私のコードです:

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:", "??");

}

}
4

1 に答える 1