android获取基站信号强度?

1.这个方法中toast的是基站信号强度吗?手机上面显示的信号强度和基站信号强度一样吗?
想获得连接基站的信号强度这样写对吗?
2.下面代码打印时输出结果:CellInfoGsm:{mRegistered=YES mTimeStampType=oem_ril mTimeStamp=327578425571078ns CellIdentityGsm:{ mMcc=460 mMnc=0 mLac=20978 mCid=64749} CellSignalStrengthGsm: ss=22 ber=99}
这里的ss,和ber是什么意思啊?

  1. List infos = telephonyManager.getAllCellInfo(); // List infos = telephonyManager.getNeighboringCellInfo();这个不能用了,返回值一直是infos.size为0,求助 ```
 private class MyPhoneStateListener extends PhoneStateListener
    {
        /* Get the Signal strength from the provider, each tiome there is an update  从得到的信号强度,每个tiome供应商有更新*/
        @Override

        public void onSignalStrengthsChanged(SignalStrength signalStrength)
        {
            super.onSignalStrengthsChanged(signalStrength);
            if (signalStrength.getGsmSignalStrength() != 99) {
                Toast.makeText(getApplicationContext(),
                        "Go to Firstdroid!!! GSM Cinr = " + String.valueOf(signalStrength.getGsmSignalStrength() * 2 - 113) + "dbM", Toast.LENGTH_SHORT).show();
                System.out.println("****" + String.valueOf(signalStrength.getGsmSignalStrength() * 2 - 113));
            }
        }
    }

代码:

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "GSMCellLocationActivity";
    TelephonyManager telephonyManager;
    MyPhoneStateListener MyListener;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView textView1 = (TextView) findViewById(R.id.text1);
        final TextView textView2 = (TextView) findViewById(R.id.text2);
        Button button= (Button) findViewById(R.id.button1);
         telephonyManager= (TelephonyManager) MainActivity.this.getSystemService(Context.TELEPHONY_SERVICE);
        MyListener = new MyPhoneStateListener();
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String operator = telephonyManager.getNetworkOperator();
                /**通过operator获取 MCC 和MNC */
                int mcc = Integer.parseInt(operator.substring(0, 3));
                int mnc = Integer.parseInt(operator.substring(3));
                GsmCellLocation location = (GsmCellLocation) telephonyManager.getCellLocation();
                /**通过GsmCellLocation获取中国移动和联通 LAC 和cellID */
                int lac = location.getLac();
                int cellid = location.getCid();
                System.out.println("**"+mcc+"A"+mnc+"A"+lac+"A"+cellid);
                textView1.setText("国家编号:"+mcc+"运营商编号:"+mnc+"LAC:"+lac+"CellID:"+cellid);
                List<CellInfo> infos = telephonyManager.getAllCellInfo();
                // List<NeighboringCellInfo> infos = telephonyManager.getNeighboringCellInfo();
                StringBuffer sb = new StringBuffer("总数 : " + infos.size() + "\n");
                for (CellInfo info1 : infos) { // 根据邻区总数进行循环
                    //  sb.append(" LAC : " + info1.getLac()); // 取出当前邻区的LAC
                    //  sb.append(" CID : " + info1.getCid()); // 取出当前邻区的CID
                    sb.append(" CID : " + info1.toString()); // 取出当前邻区的CID
                    //  sb.append(" BSSS : " + (-113 + 2 * info1.getRssi()) + "\n"); // 获取邻区基站信号强度
                }

                Log.i(TAG, " 获取邻区基站信息:" + sb.toString());
                textView2.setText(sb.toString());
            }
        });
        telephonyManager.listen(MyListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
       // telephonyManager.listen(celllistener, PhoneStateListener.LISTEN_CELL_LOCATION); // 基站位置的变化
    }



    private class MyPhoneStateListener extends PhoneStateListener
    {
        /* Get the Signal strength from the provider, each tiome there is an update  从得到的信号强度,每个tiome供应商有更新*/
        @Override

        public void onSignalStrengthsChanged(SignalStrength signalStrength)
        {
            super.onSignalStrengthsChanged(signalStrength);
            if (signalStrength.getGsmSignalStrength() != 99) {
                Toast.makeText(getApplicationContext(),
                        "Go to Firstdroid!!! GSM Cinr = " + String.valueOf(signalStrength.getGsmSignalStrength() * 2 - 113) + "dbM", Toast.LENGTH_SHORT).show();
                System.out.println("****" + String.valueOf(signalStrength.getGsmSignalStrength() * 2 - 113));
            }
        }
    }







0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
基站信号强度和位置变化详解(可获得其他系统信息)
效果如下: n手机监听类型:(封装在PhoneStateListener类中),了解一下都有哪些监听:LISTEN_NONE:停止监听更新(一般onPause方法中把所有的监听关闭掉);LISTEN_SERVICE_STATE:监听网络服务状态的变化;LISTEN_SIGNAL_STRENGTH:监听网络信号强度的变化(单个);LISTEN_SIGNAL_STRENGTHS:监听网络信号强度的变化(
基站信号强度读取
信号强度读取程序,可以定时往SQLite数据库里存储数据。经过U8500真机测试。
Android 手机信号强度
定义手机强度监听:n MyPhoneStateListener MyListener;n获取信号强度:n /**n * 设置信号强度n */n private void setSignalStrengths() {n MyListener = new MyPhoneStateListener(); Tel = (TelephonyMana
Android 监听双卡信号强度(附完整代码)
Android 监听双卡信号强度(附完整代码)
android5.1.1 获取当前移动信号强度
TelephonyManager mTelephonyManager;n mTelephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);n mTelephonyManager.listen(new PhoneStateListener(){n @O
iOS 获取手机运营商信号强度
Measuring cellular signal strengthnn nnhttps://stackoverflow.com/questions/4954389/measuring-cellular-signal-strengthnnI am developing a non-appstore app for iOS. I want to read the cellular signal st...
Android6.0获取4G信号的信号强度(dbm)
起因:项目需要获取4G信号强度,进行显示。rn经过:通过google,发现获取4G信号强度都是通过读取字符串的方式获取,但是我还没有搞懂取出的是什么,也不知道怎么通过那个值转化成显示的格数。rn 所以,我想看看系统是怎么实现的,看看能不能用跟系统同样的方式获取dbm值或者取出信号强度的格数。rn结果:经过一番折腾,终于找到了一个隐藏的方法:rn在frameworks\base\telephony\
Android 工具类 —— 判断网络连接状态、GPS是否打开、基站信息和手机IMSI码
参考:http://www.jb51.net/article/32920.htm n获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。 n n1)判断是否有网络连接 n代码如下:npublic boolean isNetworkConnected(Context context) {nif (context != null) {nConnectivityManager m
android WIFI 信号强度检测
前几天开会,领导突然说让我们增加个功能,和手机WIFI信号图标一样,会随着信号强度的强弱来改变。(因为我们这里所有状态栏都是隐藏了的,所以这些小东西都得自己写了)。好了,言归正传。我们来说说如何实现这个功能吧!首先我们屡屡思路,如果要实现这个功能,肯定先得判断是否有网,有网了以后那么我们得判断WIFI打开没有,打开了也得判断连接了没有,连接了也得判断可不可以用~~~(握了棵草,又臭又长)总之就是这些
iOS之手机信号的查看与判断
今天写的内容呢是判断当前手机是否有信号。。主要有两种方式:n1、通过打开“电话”输入 “ *3001#12345#* ”,按拨号键,跳转到Field Test界面,这时左上角的信号原点会显示成数字,接着再同时按下开机键和Home建直到手机关机,重启后就可以点击左上角进行原点和数字切换了。n注意:若想变为之前原点的显示,只需
Android 手机信号强度上报机制1
信号强度上报流程n nGSST : GsmServiceStateStracker nRILJ : RIL JAVA nRILD : RIL DEAMONGsmServiceStateTracker 继承了 ServiceStateTracker的属性,实现了 nHandleMessage的方法。A、当GsmServiceStateTracker实例化后,注册了事件EVENT_SIM_REA
Android——获取手机当前信号强度(dbm/asu值)
/**n     * 得到当前的手机蜂窝网络信号强度n     * 获取LTE网络和3G/2G网络的信号强度的方式有一点不同,n     * LTE网络强度是通过解析字符串获取的,n     * 3G/2G网络信号强度是通过API接口函数完成的。n     * asu 与 dbm 之间的换算关系是 dbm=-113 + 2*asun     */n    public void ge
Android获取手机信号强度汇总
    雪里香梅,先报春来早。——(宋)欧阳修《蝶恋花》nn    如今的天气是越来略冷了,每每走在凛冽的寒风中,心里就一个想法,春(假)天(期)怎么还不到!不知道大家有没有同感。前两天要做一个获取手机信号的小程序,于是在网上搜索了很多,就找到两种方法,遗憾的是都没跑通。正当本人山重水复疑无路之时,看到了第三种方法,赶紧试了一下——噢耶\(^o^)/成功啦!于是把这三种方法都整理下来和大家分享一下...
[项目总结]信号强度检测app
项目介绍这个app的需求就是:能够实时检测某个位置的各运营商的信号强度。主要是针对移动,联通,电信等基站等信号进行监控,实时获取4G,3G,2G信号,工程巡检人员拿着这款app到某个位置巡检后,检测当前位置的信号强度,并截屏记录下来,以便后面查看历史巡检记录。从表面上看这app功能看似简单,但在实际开发中还是遇到许多难点的。项目所遇到的困难该app是基于AT指令获取各运营商信号首先了解什么是AT指令
android-获取手机信号强度(2)
1.mainactivityrnpackage com.npsmaster.phoneinfo;nnimport android.content.Context;nimport android.os.Message;nimport android.os.Handler;nimport android.support.v7.app.AppCompatActivity;nimport android.
iOS 获取蜂窝信号强度
调用CoreTelephony.framework的私有函数“CTGetSignalStrength”能够获取信号,如下:int getSignalStrength()n{nvoid *libHandle = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);nint (*CTG
基站距离与衰减计算公式
可以通过表格计算基站功率,非常方便快捷,而且可以用于2G3G
Android监控WIFI和GSM状态并绘制网络强度
在实际工作中,常常遇到APP显示网络强度的需求。n使用过程中涉及的应用权限如下:nn一、网络强度分为二个部分:n    1、手机网络GSM(2G/3G等)n        GSM需要注册PhoneStateListener监听器,通过监听网络改变,获取手机当前网络的强度。n 2、Wifi网络
android获取移动网络相关状态数据Demo
功能描述: 获取移动网络相关状态数据如下: 1. 移动网络制式(4G/3G/2G) 2. 网络运营商类型 3. 移动网络信号强度 4. 切换飞行模式 5. 开关移动数据网络 6. WIFI信号强度 7. 开关Wifi 内含apk文件。
android信号强度检测(AT指令)
项目介绍近期我们接收到客户的一个需求,实现一个app,能够在app里面实时检测某个位置的各运营商的信号强度。主要是针对移动,联通,电信等基站等信号进行监控,实时获取4G,3G,2G信号,其中中国电信运营商是没有3G信号的。工程人员(运营商的巡检人员)拿着这款app到某个位置巡检后,检测当前位置的信号强度,并截屏记录下来,以便后面查看历史巡检记录。
android手机信号强度
android定义了2种信号单位:dBm和asu。 n信号强度单位: ndBm(1毫瓦的分贝数)和asu(alone signal unit 独立信号单元)。nn它们之间的关系是:dBm =-113+2asu, n这是google给android手机定义的特有信号单位。例如,我的信号强度为-53dBm,则对应30asu,因为-53 = -113 + (230) 。nn这是google给androi...
Android 获取wifi信号强度
先来了解下Android如何获取wifi的信息: nWifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE); nWifiInfo wifiInfo = wifi_service.getConnectionInfo();其中wifiInfo有以下的方法: nwifiinfo.getBSSID(); nwifiinfo
Android中获取GSM、CDMA、Wifi信号强度
Android中获取GSM、CDMA、Wifi信号强度。 Android中获取GSM、CDMA、Wifi信号强度
android手机信号强度检测
android手机信号强度检测nnn最近在面试的时候被问到一个问题,当手机处于弱网状态下,如何处理,如何监听网络信号强度变化。n这里先了解关于手机信号强度的相关几个概念nnn文章出处:http://blog.csdn.net/fuchengbo000/article/details/42740357nnAndroid手机信号强度介绍nnnandroid定义了2种信号单位:d
android 实时获取wifi信号强度
n public boolean isWifiConnect() {n ConnectivityManager connManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);n NetworkInfo mWifiInfo = connManager....
Android获取到手机信号强度信息后传回给unity
之前做了一个在unity里面获取安卓手机信号强度的功能,看了很多帖子,大多数讲得很好,但是对于一窍不通的我来说,帖子还是有点不全,我不能按照帖子很顺利的做出来,经过一番尝试,最终还是做出了一个版本,顺便也记下来,免得下次爬坑!rn      下面简单记下,首先在AndroidManifest.xml里面加入获取手机信号的权限:rnrnrn接着在自己的类里判断是否有网络连接:rnpublic cla
【Android】蓝牙连接,获取信号地址和强度
程序实现功能:开启、关闭、连接蓝牙,SCAN周围蓝牙并获得蓝牙名字,地址,信号强度RSSI,连接状态,因为当时是为了做一个蓝牙定位,所以按照需求还添加了一个是否是自己买的蓝牙基站的Textview。nn当判断SCAN到的蓝牙里面有自己的蓝牙基站时,就再用一个ListView把它们的名字、地址、信号强度、距离和之前设定的坐标单独列出来。nn程序实现效果图如下:nnnn nn程序是参考了Github上...
AT指令判断NBIoT网络质量
首先需要明确,网络环境不能用单纯的一个数值来度量,一个网络环境质量的好坏需要从多个维度来进行分析;在测试中,可以通过如下几AT指令,对 指令,对 网络环境指令做简单的了解(但不能完全定义其质量好坏)。nAT+NUESTATS指令n[#Send] AT+NUESTATSn[#Recv] Signal power:-788nTotal power:-683nTX power:150nTX time:3...
Android sim卡信号强度 运营商获取
1.sim获取nnTelephonyManager可以访问与手机通讯相关的信息,比如设备信息、网络信息及SIM卡信息,同时还可以监听电话的相关状态nnnprivate void getPhone() {n TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context....
Android 获取手机型号、信号强度、厂商等信息
1. 获取手机型号rnrnrnrnrnrnrnrnrn[html] viewrn plain copyrnrnrnrnrnrnrnString   model= android.os.Build.MODEL;  rnrnrnrnrn2. 获取手机厂商:rnrnrnrnrnrn[html] viewrn plain copyrnrnrnrnrnrnrnString carrier= android.
Android 不连接蓝牙设备获取信号强度
要拿到蓝牙信号指示值 rssi 分为两个步骤。n1.在oncreate方法里面增加 注册扫描广播 n public void onCreate(Bundle savedInstanceState) { nnn // 注册开始发现广播 n //当设备扫描得到蓝牙设备时触发,如果需要在连接设备后触发可使用ACTION_ACL_CONNECTED
基站和经纬度定位(定位API实例)
在VS2013下开发,基于C#WinForm编程,提供基站定位实例,可实现:(1)输入基站定位信息,可返回提供经纬度以及与Http服务器之间的通信信息。(2)输入经纬度信息,可返回与Http服务器之间的通信信息。
基站覆盖测试程序-大型居民小区深度覆盖测试辅助工具
基站覆盖测试程序使用说明简介本程序主要用于测试基站覆盖信号强度,特别适用于在大型居民小区内测试每层楼的信号覆盖情况。程序测试后以电子表格的方式提供测试数据,便于后续分析。程序可采集LTE、WCDMA、GSM网络的基站信息,目前程序只在华为、小米等少量机型上测试过,尚不能保证其他机型正常使用。需要同意开启电话权限和读取位置权限,以便获取基站信息和位置信息。基站覆盖测试APP链接:    http:/...
android获取wifi信号强度
一个获取wifi信号强度的案例,通过广播机制监听客户端wifi强度的变化。nnn首先需要在清单文件中添加获取wifi状态的权限:nn然后获取信号强度代码如下:npackage com.my.phonesingle;nnimport android.app.Activity;nimport android.content.BroadcastReceiver;nimport android
Android Studio 导出Unity插件(剩余电量、信号强度)
因为游戏时全屏的 , 所以需要游戏能更加的人性化提示一些信息在界面上。                        保卫萝卜3的截图!http://blog.csdn.net/u010019717首先使用  AB工具导出 .jar  包 之前说过:  http://blog.csdn.net
android 获取蓝牙信号强度,连接后获取蓝牙RSSI信号强度
基于蓝牙的RSSI可以有很多应用,要获得蓝牙的RSSI无外乎两种方法。 rn 一种就是基于扫瞄的方法,优点是Android本身支持,缺点是scan的时间比较长,并且中间过程不受控制,为了连续的测量,需要不断的scan;第二种就是,基于连接的方法,前提是要建立两个蓝牙设备的连接后,再测量RSSI,优点是后期测量比较方便,间隔时间也较短。rnMarkdown和扩展Markdown简洁的语法rn代码块高亮
android 如何去获取手机Gps的信号强度
1,看到别人写的app里面有展示Gps信号强度的功能,我们的app也需要这个功能,我是先百度了一圈(没有发现要找到的内同,百度果然有些东西搜索不到),还是翻墙去的谷歌看到了,你也可以先去现在几个Gps相关的软件,比如:Gps工具箱,nGpsStatus.Listener gpsS = new GpsStatus.Listener() {n@Overridenpublic void onGps
基站信号测试软件(2G、3G)
该测试软件主要适用于诺基亚手机,它是基站信号测试软件,大家可以试试,测试3G时是WCDMA的
原生JS+DIV模拟手机信号强度
原生JS+DIV模拟手机信号强度
Android 蓝牙强度Rssi
1.什么是RssirnRSSI(接收信号强度)Received Signal Strength IndicatorrnRss=10logP,rn只需将接受到的信号功率P代入就是接收信号强度(灵敏度)。rn[例1] 如果发射功率P为1mw,折算为dBm后为0dBm。rn[例2] 对于40W的功率,按dBm单位进行折算后的值应为:rn10lg(40W/1mw)=10lg(40000)=10lg4+10
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 lora物联网基站价格 获取教育大数据