android信号强弱动画,Android6.0获取4G信号的信号强度(dbm)
起因:项目需要获取4G信号强度,进行显示。
经过:通过google,发现获取4G信号强度都是通过读取字符串的方式获取,但是我还没有搞懂取出的是什么,也不知道怎么通过那个值转化成显示的格数。
所以,我想看看系统是怎么实现的,看看能不能用跟系统同样的方式获取dbm值或者取出信号强度的格数。
结果:经过一番折腾,终于找到了一个隐藏的方法:
在frameworks\base\telephony\java\android\telephony\SignalStrength.java内找到该方法
/**
* Get the signal strength as dBm
*
* @hide
*/
public int getDbm() {
int dBm;
if(isGsm()) {
dBm = getLteDbm();
//MTE-START [ALPS01200757]
//if (dBm == INVALID) {
if (!isCampOnLte()) {
//MTE-END [ALPS01200757]
dBm = getGsmDbm();
}
} else {
int cdmaDbm = getCdmaDbm();
int evdoDbm = getEvdoDbm();
return (evdoDbm == -120 || evdoDbm == -113) ? cdmaDbm
: ((cdmaDbm == -120 || cdmaDbm == -113) ? evdoDbm
: (cdmaDbm < evdoDbm ? cdmaDbm : evdoDbm));
}
if (DBG) {
log("getDbm=" + dBm);
}
return dBm;
}
但是该方法是隐藏的,凑巧的是,通过方法
public void onSignalStrengthsChanged(SignalStrength signalStrength)
来监听4G信号变化,刚好有SignalStrehgth对象,那就通过反射的方式获取,正好
Method method1 = null;
method1 = signalStrength.getClass().getMethod("getDbm");
dbm = method1.invoke(signalStrength);
这样就能取出dbm值了。
注:
Method method2 = signalStrength.getClass().getMethod("getLteLevel");
level = method2.invoke(signalStrength);
通过这个方法能获取出和系统一样的信号格数。
android信号强弱动画,Android6.0获取4G信号的信号强度(dbm)相关推荐
- 获取4g信号强度android,Android6.0获取4G信号的信号强度(dbm)进行显示
起因:项目需要获取4G信号强度,进行显示. 经过:通过google,发现获取4G信号强度都是通过读取字符串的方式获取,但是我还没有搞懂取出的是什么,也不知道怎么通过那个值转化成显示的格数. 所以,我想 ...
- android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...
1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...
- android信号强弱动画,Android自定义View展示Wifi信号强弱指示方法示例
前言 最近因为工作的需要,要自定义展示Wifi信号强弱的需要,就通过利用系统广播的方式实现了一个自定义View--WifiStateView,下面话不多说了,感兴趣的朋友们一起来看看详细的介绍吧. 实 ...
- android6.0获取通讯录权限
android6.0中,获取通讯录的权限是 <uses-permission android:name="android.permission.GET_ACCOUNTS&quo ...
- android 相机拍照返回,Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题...
版权声明:本文为博主原创文章,未经博主允许不得转载. 正常情况下调用系统相机拍照: 如果拍照后点击的是"确定"图标,返回的resultCode = -1(Activity.RESU ...
- [Android Studio]详细讲解Android6.0以上请求应用权限(解决请求权限窗口一闪而过的问题)
现在的主流手机的Android版本都是8.0/9.0(笔者的华为手机为9.0),所以在开发Android的时候尽量使用Android8.0的版本(SDK 26).随着Android版本的提升,系统的安 ...
- android launcher 字体大小,Android6.0 Launcher3 修改app字体大小
在原生的Android6.0中,在修改了系统字体大小后,Launcher 3上的app字体大小没有改变,下面方法可以解决:--- a/packages/apps/Launcher3/src/com/a ...
- android禁止压缩壁纸,Android6.0 屏蔽壁纸功能
软件平台:android6.0 硬件平台:MT6797 这两天搞了一个定制需求,也算是一个bug吧,6.0的系统前阵子做了系统裁剪,去掉了几十个app和service,结果一开始没出现的问题,裁剪后出 ...
- android关闭权限管理,Android6.0权限管理以及使用权限该注意的地方
Android 6.0 Marshmallow首次增加了执行时权限管理,这对用户来说,能够更好的了解.控 制 app 涉及到的权限.然而对开发人员来说却是一件比較蛋疼的事情.须要兼容适配,并保证程序功 ...
最新文章
- Creating Apps With Material Design —— Defining Custom Animations
- XINGNET交换机病毒防范
- Excel中Sumproduct函数的使用方法
- 值类型与引用类型(下)
- 2018华为软件精英挑战赛总结
- 片上网络NoC(一)—— 概述
- C语言学习之输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
- java Object类是可以接收集合类型的
- python实现嵌套功能_我应该如何在Python中实现“嵌套”子命令?
- 让我变得开朗了很多哦
- 华为p40为何没有搭载鸿蒙系统?
- BZOJ2142: 礼物
- 适配器模式 - 上厕所案例
- python 字符串转字节_【转】python中的字符串和字节串
- fortran---说实话,不知道记录有什么用 写着玩吧
- 简单记账本-android版
- 【保密知识】排查失泄密隐患 防控保密风险点
- 「首席架构师精选」精选绘图软件
- arm rtx教程_【RTX操作系统教程】第4章 RTX操作系统介绍
- Android日期时间与时区使用总结汇总
热门文章
- Densefuse: 成功解决ValueError: cannot reshape array of size xxx into shape (xxx,xxx,xxx)
- 类似货拉拉的货运APP开发软件怎么做
- int与float深入理解
- 7. kafka序列化反序列化
- 代码整洁之道读书笔记——第一章:整洁代码
- intllij idea -- 文件行数过多出现卡顿,特别卡
- C#已知两点(线段),求互相垂直平分两点(线段)。
- access查询成绩小于5分_Access数据库查询在成绩分析中的运用
- b550和x570主板区别
- 社交电商是零售行业新的流量口?