我正在尝试显示dBm,就像你在下面看到的那样:
设置>关于手机>状态..
到目前为止,我已经达到应用程序不会崩溃的程度。
现在,它只是在textview中不显示任何内容。
我在这里看了很多帖子,每个帖子都与我想要的东西不同。认为这将是一个简单的搜索和发现,事实证明它不是。
不确定我在这里做错了什么,在LogCat中没有错误任何人都有任何想法会很棒。
开发人员引用根本不帮助我,除非它有一些东西向我展示它是如何使用/工作所以我可以理解它。我试过并且失败大声笑,无论如何是我的代码:
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.NeighboringCellInfo;
import android.telephony.TelephonyManager;
import android.widget.TextView;
public class Screen extends Activity {
TextView dbm;
String dBm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainfull);
dbm = (TextView) findViewById(R.id.Signal);
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
List<NeighboringCellInfo> NeighboringList = telephonyManager
.getNeighboringCellInfo();
for (int i = 0; i < NeighboringList.size(); i++) {
int rssi = NeighboringList.get(i).getRssi();
if (rssi == NeighboringCellInfo.UNKNOWN_RSSI) {
dBm = "Unknown RSSI";
} else {
dBm = String.valueOf(-113 + 2 * rssi) + " dBm";
}
}
dbm.setText(dBm);
}
}
不确定我是否遗漏了任何可能有用的信息,如果是这样,请告诉我
答案 0 :(得分:3)
也许NeighboringList
是空的?
您真的想要相邻小区或当前小区的RSSI吗? 要获取当前单元格的RSSI,您可以注册this listener:
public class AndroidPhoneStateListener extends PhoneStateListener {
public static int signalStrengthValue;
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
if (signalStrength.isGsm()) {
if (signalStrength.getGsmSignalStrength() != 99)
signalStrengthValue = signalStrength.getGsmSignalStrength() * 2 - 113;
else
signalStrengthValue = signalStrength.getGsmSignalStrength();
} else {
signalStrengthValue = signalStrength.getCdmaDbm();
}
}
}