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