首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dbm中获取SignalStrength

在dbm中获取SignalStrength
EN

Stack Overflow用户
提问于 2014-07-16 12:39:02
回答 1查看 2.7K关注 0票数 1

我想展示dbm的信号强度。但用我的代码,我总是成为结果-1。但当我看到设置中的信号强度是-81.你能发现一个错误吗?谢谢!

代码语言:javascript
复制
public class MainActivity extends Activity implements OnClickListener {
    TextView dateAndTimeLabel;
    private int signalDBM = 0;

    public class GetParams extends PhoneStateListener {
        @Override  
        public void onSignalStrengthsChanged(SignalStrength signalStrength) {
            super.onSignalStrengthsChanged(signalStrength);
            signalDBM = signalStrength.getEvdoDbm();
        }
    }

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);

        GetParams listener = new GetParams();
        TelephonyManager TelManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        TelManager.listen(listener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);

        Button btn = (Button)findViewById(R.id.start);
        btn.setOnClickListener(this);             
    }

    public void onClick(View v) {
        Toast.makeText(this, "CDMA signal strength is " + this.signalDBM, Toast.LENGTH_SHORT).show();               
    }

    /* Create options menu etc*/
}
EN

回答 1

Stack Overflow用户

发布于 2015-01-08 15:36:30

试试这个:

list cellInfoList = tm.getAllCellInfo();//检查列表值是否为空if (cellInfoList != null) { for (最终CellInfo info : cellInfoList) { if (info instanceof CellInfoGsm) { //GSM网络CellSignalStrengthGsm cellSignalStrength = ((CellInfoGsm)info).getCellSignalStrength();dBmlevel = cellSignalStrength.getDbm();asulevel = cellSignalStrength.getAsuLevel();} if (info instanceof CellInfoCdma) { //CDMA网络CellSignalStrengthCdma cellSignalStrength = ((CellInfoCdma)info).getCellSignalStrength();dBmlevel = cellSignalStrength.getDbm();asulevel = cellSignalStrength.getAsuLevel();} if (info instanceof CellInfoLte) { //LTE cellSignalStrength = ((CellInfoLte)info).getCellSignalStrength();dBmlevel = cellSignalStrength.getDbm();asulevel = cellSignalStrength.getAsuLevel();} if (info instanceof CellInfoWcdma) { //WCDMA网络CellSignalStrengthWcdma cellSignalStrength =cellSignalStrength.getAsuLeveldBmlevel = cellSignalStrength.getDbm();asulevel = cellSignalStrength.getAsuLevel();} callbackContext {//开发为Cordova插件,这就是为什么我使用callbackContext callbackContext.error(“未知类型的细胞信号”);}}

如果你的手机是三星,它将返回0 dBm,0 asu。如果没有,那么它应该可以工作(它在我的Xperia M2 Aqua中有效)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24781009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档