PhoneStateListener
을 등록하고 onSignalStrengthsChanged
콜백을 통해 변경 사항이있을 때 이 GSM 신호 강도 값을보고하는 Android 코드를 작성했습니다. 모든 것이 잘 작동하지만 첫 번째 변경이 발생하기 전에 초기 신호 강도를 갖기를 원합니다. onCreate
메서드의 끝 전에 GSM 신호 강도를 확인하는 방법이 있습니까? (끝 부분의 주석 처리 된 행을 참조하십시오. 코드)?Android : 애플리케이션에서 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:", "??");
}
}
API 수준 17에서 원하는 내용을 설명하는 내용을 발견했습니다. http://stackoverflow.com/questions/16529744/how-to-get-current-cell-signal-strength 하지만 어떻게 할 수 있습니까? 이전 API 버전의 경우 API 레벨 8? –