前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN:
http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

若做信号验证测试时,从仪器上读取到的信号强度与在手机设置中上读取到的信号强度差异较大,尤其3G网络情况下特别明显。请参考以下说明做修改后再进行测试。

另外需要说明的是,由于测量误差以及计算误差,仪器上的读数与手机上的读数相差±3dbm应该属于正常范围。另外,测试时对于仪器信号变化的频率不宜过快,因为底层的变化需要一定时间才能更新到UI上。

[SOLUTION]

手机上目前可能有两个地方可以看见信号强度dbm值:

Ø  设置 —— SIM卡管理 —— SIM卡信息 —— 状态信息 —— 信号强度

Ø  设置 —— 关于手机 —— 状态信息 —— SIM卡状态 —— 信号强度

由于UI上得到信号强度dbm值调用的接口,可能使用了2G信号公式从asu值推算得到dbm值,因此在3G网络下调用此接口会有一些问题出现。请根据版本情况对照修改:

Android 4.0

修改SignalStrength.java

public int getGsmDbm() {

int dBm;

int gsmSignalStrength = getGsmSignalStrength();

int asu = (gsmSignalStrength == 99 ? -1 : gsmSignalStrength);

if (asu != -1) {

//mtk add

//if(IS_CMCC && mGsmRscpQdbm < 0)

if(mGsmRscpQdbm < 0)

//mtk add end

{

// Return raw value for TDD 3G network.

dBm = mGsmRscpQdbm / 4;

} else {

dBm = -113 + (2 * asu);

}

} else {

dBm = -1;

}

if (DBG) log("getGsmDbm=" + dBm);

return dBm;

}

private void setFromNotifierBundle(Bundle m) {
        //MTK-START [mtk04070][111116][ALPS00093395]Support Gemini
        mSimId = m.getInt("simId");
        //MTK-END [mtk04070][111116][ALPS00093395]Support Gemini
        mGsmSignalStrength = m.getInt("GsmSignalStrength");
        mGsmBitErrorRate = m.getInt("GsmBitErrorRate");
        mCdmaDbm = m.getInt("CdmaDbm");
        mCdmaEcio = m.getInt("CdmaEcio");
        mEvdoDbm = m.getInt("EvdoDbm");
        mEvdoEcio = m.getInt("EvdoEcio");
        mEvdoSnr = m.getInt("EvdoSnr");
        mLteSignalStrength = m.getInt("LteSignalStrength");
        mLteRsrp = m.getInt("LteRsrp");
        mLteRsrq = m.getInt("LteRsrq");
        mLteRssnr = m.getInt("LteRssnr");
        mLteCqi = m.getInt("LteCqi");
        isGsm = m.getBoolean("isGsm");

mGsmRscpQdbm = m.getInt("RscpQdbm");  //mtk add

}
    
    public void fillInNotifierBundle(Bundle m) {
        //MTK-START [mtk04070][111116][ALPS00093395]Support Gemini
        m.putInt("simId", mSimId);
        //MTK-END [mtk04070][111116][ALPS00093395]Support Gemini
        m.putInt("GsmSignalStrength", mGsmSignalStrength);
        m.putInt("GsmBitErrorRate", mGsmBitErrorRate);
        m.putInt("CdmaDbm", mCdmaDbm);
        m.putInt("CdmaEcio", mCdmaEcio);
        m.putInt("EvdoDbm", mEvdoDbm);
        m.putInt("EvdoEcio", mEvdoEcio);
        m.putInt("EvdoSnr", mEvdoSnr);
        m.putInt("LteSignalStrength", mLteSignalStrength);
        m.putInt("LteRsrp", mLteRsrp);
        m.putInt("LteRsrq", mLteRsrq);
        m.putInt("LteRssnr", mLteRssnr);
        m.putInt("LteCqi", mLteCqi);
        m.putBoolean("isGsm", Boolean.valueOf(isGsm));

m.putInt("RscpQdbm", mGsmRscpQdbm);  //mtk add 
    }

Android 4.1/4.2

步骤1:请修改ServiceStateExtXXX.java:

public int mapGsmSignalDbm(int GsmRscpQdbm,int asu){

int dBm;

//mtk add

if(mGsmRscpQdbm < 0 && mGsmRscpQdbm ! = -1)

dBm = GsmRscpQdbm / 4; // Return raw value for 3G network.

else

//mtk add end

dBm = -113 + (2 * asu);

return dBm;

}

步骤2:请修改SingalStrength.java,确认下面代码中红色方框中内容:

Android 【信号格的客制化】Part 3:手机上显示的信号强度dbm值不正确相关推荐

  1. Android 12.0 Launcher客制化指导手册

    主要包含 Launcher3升级变化:小部件变化 . Go版本差异.支持自动生成Work文件夹 . UI客制化 :桌面布局 .布局配置 .预置图标 .图标客制化 .待机界面客制化.应用抽屉客制化 功能 ...

  2. Android 5.0 Launcher客制化定制之 主题包协议(MIUI主题、乐蛙主题兼容)

    Android 5.0 Launcher客制化定制之 主题包协议(MIUI主题.乐蛙主题兼容) 春节更新

  3. android 7.0平台客制化虚拟导航按键(隐藏NavigationBar,上滑显示NavigationBar)

    如图,需求是增加一个按钮可以隐藏NavigationBar,上滑显示NavigationBar. 参考文章: Android 8.1平台客制化虚拟导航按键 Android 7.0 虚拟按键(Navig ...

  4. Android如何客制化adb shell进去后显示shell@xxxx的标识

    首先,找到源代码,在external/mksh/mkshrc,打开这个文件后会看到开头有如下脚本: android4.2源码内容如下: : ${TERM:=vt100} ${HOME:=/data} ...

  5. Android 8.1平台客制化虚拟导航按键

    文章目录 @[toc] 需求 运行截图 代码修改步骤 欢迎关注公众号,给你更多技术干货: 需求 基于MTK8163 8.1平台定制导航栏部分,在左边增加音量减,右边增加音量加 运行截图 代码修改步骤 ...

  6. Launcher Go布局客制化

    Launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为Launcher.Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Launcher就无法启动安卓桌面 布局配置 布局 ...

  7. 客制化键盘编程_基于3D打印的客制化机械键盘设计与实现

    龙源期刊网 http://www.qikan.com.cn 基于 3D 打印的客制化机械键盘设计与实现 作者:许玺风 毛凌志 来源:<科学与财富> 2020 年第 03 期 摘 要:本文首 ...

  8. Android 信号格客制化问题处理

    [Android Q] 信号强度客制化代码位置: NR(5G) CellSignalStrengthNr.java updateLevel() LTE MtkSignalStrength.java u ...

  9. MTK Android 13平台开关机动画铃声客制化

    MTK Android 13平台开关机动画铃声客制化 Android T和S的差异很大 主要是MtkShutdownThread.java和ShutdownThread.java差异 未完,待更新,填 ...

最新文章

  1. SPRING 事务管理说明
  2. 马路上的“懦夫游戏”和比特币现金共识升级冲突
  3. 轻松恢复误删除的共享文件,DPM2007系列之六
  4. 算法导论之红黑树的学习
  5. 【深度学习】CV和NLP通吃!谷歌提出OmniNet:Transformers的全方位表示
  6. Pandas处理数据太慢,来试试Polars吧!
  7. 2017二级c语言成绩,2017全国计机等级考试二级C语言知识点超全整(打印版).docx
  8. Python14 函数
  9. 因证书问题,Xcode 真机调试时经常遇到的问题
  10. 我的“五一”特价机票是从爬虫手里买的
  11. IT 工作中常用的英语单词
  12. Sql Server 02
  13. Justinmind使用教程(2)——计算表达式及条件使用方法
  14. solidworks批量图号分离_SolidWorks2014基于宏实现快速图号名称分离.docx
  15. 李天平:技术以外的功夫
  16. 亚马逊测评:最前沿养号系统,如何降低成本提高效率搭建稳定的ip环境
  17. brave+zipkin实现dubbo的服务跟踪
  18. springmvc原理+springmvc面试题
  19. 安装Docker,在本机上跑一个‘2048’小游戏(脉冲云在线体验)
  20. 阿里巴巴2015校招电面

热门文章

  1. 利用U盘进行Windows11系统重装
  2. opencv之imread函数
  3. wps怎么默认粘贴html,wps文字怎样设置文本粘贴默认方式
  4. .aspx文件和.html文件
  5. 机器学习|卷积神经网络(CNN) 手写体识别 (MNIST)入门
  6. Traffmonetizer利用vps小鸡赚钱,支持windows,linux,Android,MacOS多平台
  7. 天源迪科笔试20121115
  8. PAT(1002)读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字,前面每位之后有空格,最后一位后面没有空格
  9. CSS 各种百分比是基于什么工作的?
  10. 牛客选靓号即拼多多20200410笔试第三题