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 に答える