我已經寫了一段Android代碼,註冊了一個PhoneStateListener
和 報告GSM信號強度值,當有變化時,通過 onSignalStrengthsChanged
回調。一切工作正常,但我想 初始信號強度發生第一次變化之前..有沒有辦法 找出GSM信號強度結束之前onCreate
方法 (請參見注釋行結束時代碼)?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? –