我试图通过使用getGthe以下编码获得误码率,但我总是得到-1。你有没有人想要获得有效的误码率。请帮助获得正确的价值。
代码如下。
public class GetGsmSignalStrengthActivity extends Activity {
TelephonyManager Tel;
MyPhoneStateListener MyListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Tel = ( TelephonyManager )getSystemService(Context.TELEPHONY_SERVICE);
Tel.listen(MyListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
private class MyPhoneStateListener extends PhoneStateListener
{
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength)
{
super.onSignalStrengthsChanged(signalStrength);
TextView dummy1 = (TextView)findViewById(R.id.textView5);
String x,m ="";
x=String.valueOf(signalStrength.getGsmBitErrorRate());
dummy4.setText("Bit Error : " +x);
}
}
}
答案 0 :(得分:3)
阅读此bug report comment #4。你看,它是可选的,因此是可能的。如果调制解调器制造商不提供它,它将返回-1。
引用:
问题是TS 27.007第8.5节中的AT + CSQ被列为可选项。因此,调制解调器制造商可以选择是否使用标准接口提供信号和误码率。所以当你看到-1表示调制解调器的人没有实现它。