1

我正在尝试显示 dBm,就像您在下面看到的那样:

设置>关于手机>状态..

到目前为止,我已经达到了应用程序不会在我身上崩溃的地步。

现在,它只是在文本视图中不显示任何内容。

我在这里看过很多帖子,每一个帖子都与我正在寻找的不同。原以为会是一个简单的搜索和查找,结果并非如此。

不知道我在这里做错了什么,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);

    }
}

不确定我是否遗漏了任何可能有用的信息,如果有,请告诉我

4

1 回答 1

3

也许NeighboringList是空的?

您真的想要相邻小区当前小区的 RSSI吗?要获取当前单元格的 RSSI,您可以注册此侦听器:

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();
        }
    }

}
于 2012-04-01T10:19:30.740 回答