【问题标题】:how to handle poor signal issue in application or boost signals如何处理应用程序中的信号不良问题或增强信号
【发布时间】:2014-04-06 16:02:44
【问题描述】:

有什么办法可以解决应用锄头增强网络信号中信号不佳的问题?游戏商店中的 isee appp,例如 https://play.google.com/store/apps/details?id=com.bosscellular.curtishttps://play.google.com/store/apps/details?id=com.alportela.apptoola.network_booster,但不知道它们是如何工作的,如何以编程方式增强信号有人知道吗?下面是我的代码,它只返回网络强度,但我想提高信号强度我该怎么办?

    private static final int EXCELLENT_LEVEL = 51;
private static final int GOOD_LEVEL = 50;



ProgressBar progressBar;
TextView textView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    progressBar = (ProgressBar) findViewById(R.id.signalLevel);
    textView = (TextView) findViewById(R.id.signalLevelInfo);
Toast.makeText(getApplication(), "Please try again \n Your Connection Signal are Low",      
          Toast.LENGTH_SHORT).show();

    startSignalLevelListener();

}





private void setSignalLevel(int level) {
    int progress = (int) ((((float) level) / 31.0) * 100);
    String signalLevelString = getSignalLevelString(progress);

    progressBar.setProgress(progress);

    textView.setText(signalLevelString);

    Log.i("signalLevel ", "" + progress);
}

private String getSignalLevelString(int level) {
    String signalLevelString = "Weak";

    if (level >= EXCELLENT_LEVEL)
    {
        signalLevelString = "High";
    progressBar.getProgressDrawable().setColorFilter(Color.GREEN, Mode.OVERLAY );
    }

    else if (level <= GOOD_LEVEL)
    {
        signalLevelString = "Weak";
        progressBar.getProgressDrawable().setColorFilter(Color.RED,  Mode.OVERLAY );

    }


    return signalLevelString;
}

private void stopListening() {
    TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

    tm.listen(phoneStateListener, PhoneStateListener.LISTEN_NONE);
}


private void startSignalLevelListener() {
    TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
    int events = PhoneStateListener.LISTEN_SIGNAL_STRENGTH
            | PhoneStateListener.LISTEN_DATA_ACTIVITY |

            PhoneStateListener.LISTEN_DATA_CONNECTION_STATE |

            PhoneStateListener.LISTEN_SERVICE_STATE;

    tm.listen(phoneStateListener, events);
}

private final PhoneStateListener phoneStateListener = new PhoneStateListener() {



    @Override
    public void onSignalStrengthChanged(int asu) {


        setSignalLevel(asu);

        super.onSignalStrengthChanged(asu);
    }
};

【问题讨论】:

    标签: android


    【解决方案1】:

    您无法通过软件真正提高信号强度;它取决于许多超出软件应用程序的变量,包括无线电固件、设备硬件、与无线站点的距离、无线电干扰和环境因素。

    您引用的应用程序似乎只是打开和关闭飞行模式,这将迫使设备立即重新扫描以寻找新连接。这些应用程序产生的任何“信号增强”都是因为在重新激活移动无线电时设备发现了更强的信号(可能通过连接到不同的无线站点)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 2017-12-07
      相关资源
      最近更新 更多