Android手机得到信号强度信息
2015-04-08 16:09
423 查看
Android手机得到信号强度信息
本文档讲述如何使用通过Android系统来得到手机信号强度等信息Android手机得到信号强度信息
背景介绍
相关调研
查找源码
代码实现
总结
背景介绍
公司的主题业务是对通信基站的研发,我需要研发一款软件来配合基站的测试工作。通过Android手机连接至基站后,采集手机上的各种和信号强度相关的信息,然后进行分析这些数据,通过分析数据完成对基站的测试相关调研
需要测试的参数主要是:-RSRP
-RSSI
-RSRQ
-SNR
-Signal Strength
在这里,我对这些参数不做解释,有需求的自行百度。
查找源码
因为市面上的Android 应用很少是做对信号强度的测试,所以我们直接去看Google提供的SDK来去查找如何可以实现我们的需求。我们在SDK中查找到了SignalStrength这个类,在SignalStrength类中有和信号强度的信息,我将类的详情进行截图:
但是我们仍然没有看到RSSI、RSRP、RSRQ等信息。我又找遍了各个可能和信号强度有关的类,但是就是找不到,所以我去查看了SignalStrength这个类的源代码。通过查找源代码后,我发现了这里面的奥秘。(我最常用查看Android源码的网站是grepcode.com,这个里面的源代码按照Android版本列出,非常不错)
我先放上SignalStrength.java的截图,再解释里面的奥秘。
这是类的参数图:
我们惊奇的发现这里面有我们需要的变量,然后发现去查找相应的get函数,发现
其实在SignalStrength这个类里面,已经有了可以get这些参数的方法,但是不知什么原因Google把他们隐藏了起来。那么我们如何得到这些值呢?
是使用toString()方法:
虽然SignalStrength类并没有为我们提供get信息的接口,但是我们通过toString方法可以得到将这些参解析出来。
代码实现
我们知道了使用SignalStrength类的toString方法可以将我们需要的参数取出来,那么我们如何使用SignalStrength类呢?我贴出我的代码以供参考:<code class="language-java hljs has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;">TelephonyManager tm =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); PhoneStateListener MyPhoneListener = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> PhoneStateListener() { <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">onSignalStrengthsChanged</span>(SignalStrength signalStrength) { String singalInformation = signalStrength.toString(); } }; tm.listen(MyPhoneListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>
其中在这里面我们得到的singalInformation变量就是一个包含信号信息的字符串,我们再自行解析就能得到我们所需的参数。
总结
这篇文章主要是讲述如何4000
得到Android手机中和手机信号强度,我们通过查找Android的源代码进而得到了这些信号强度。
相关文章推荐
- Android手机得到信号强度信息
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- Android小功能获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- Android 获取手机型号、信号强度、厂商等信息
- Android获取到手机信号强度信息后传回给unity
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- 【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)
- Android基站定位——通过手机信号获取基站信息(一)
- [转]android 获取手机GSM/CDMA信号信息
- android 获取手机GSM/CDMA信号信息
- android中得到本应用程序的相关包信息和手机中安装的应用程序的相关信息
- Android基站定位——通过手机信号获取基站信息(一)
- [转载]android得到手机卡相关信息
- android中 获取WiFi信息并计算wifi的信号强度
- Android 【信号格的客制化】Part 3:手机上显示的信号强度dbm值不正确
- android双卡手机怎样分别获得两个卡的信号强度