Android Network Provider RSSI: отображение дБм в текстовом представлении - PullRequest
1 голос
/ 01 апреля 2012

Я пытаюсь отобразить дБм так, как вы можете видеть под:

Настройки> О телефоне> Статус ..

До сих пор я дошел до того, что приложение не зависало.

Это сейчас, просто ничего не отображается в текстовом представлении.

Я посмотрел здесь много постов, и каждый из них - это нечто отличное от того, что я ищу. Подумал, что это будет простой поиск и найти, оказывается, что нет.

Не уверен, что я делаю не так, нет ошибок в LogCat, у кого-нибудь есть идеи, которые были бы потрясающими.

ссылки для разработчиков мне совсем не помогают, если только в них нет чего-то, показывающего мне, как это работает / работает, поэтому я могу понять это Я пытался и потерпел неудачу LOL, в любом случае вот мой код:

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

    }
}

не уверен, что мне не хватает информации, которая может быть полезна, если да, дайте мне знать

1 Ответ

3 голосов
/ 01 апреля 2012

Возможно 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();
        }
    }

}
...