2

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

} 

} 
+0

API 수준 17에서 원하는 내용을 설명하는 내용을 발견했습니다. http://stackoverflow.com/questions/16529744/how-to-get-current-cell-signal-strength 하지만 어떻게 할 수 있습니까? 이전 API 버전의 경우 API 레벨 8? –

답변

0

는 API 레벨 7에 추가 된 this SignalStrength class을 사용할 수 없습니다 : 여기

내 코드?

+0

시도해 보았지만 SignalStrength 생성자를 사용할 수 없습니다. 생성자가 표시되지 않습니다. 내 질문에 게시 할 때 사용하려면 리스너를 만들어야합니다. https://groups.google.com/forum/?fromgroups#!topic/android-developers/oAMIr4br8hc 링크도 확인하십시오. 그러나 수신기를 등록하지 않고 신호 강도 값을 얻는 방법을 원합니다. –

관련 문제