首页 > 其他分享 >Android12以上获取设备网络信号数据

Android12以上获取设备网络信号数据

时间:2024-01-17 11:26:56浏览次数:32  
标签:signalStrength java val Android12 telephonyManager 获取 信号 getCellSignalStrengths

公司有很多物联网设备,关键的信号参数是RSRP,总有些地方信号差,不适合安装。所以让开发一款测信号的app,用于现场的同事在判定是否符合设备信号条件,再考虑安装设备。

由于与开发过程中使用的是Android sdk33,版本太高,网上搜到的很多旧的方法已经弃用,用起来也比较麻烦。

自己捣鼓了半天使用的新方法,话不多说直接上我的代码

@RequiresApi(Build.VERSION_CODES.S)
fun getMobileNetworkSignal(context: Context): NetworkSignal {
  val telephonyManager = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
  //获取运营商
  val simOperatorName = telephonyManager.simOperatorName
  //获取当前网络信息
  val signalStrength = telephonyManager.signalStrength?.cellSignalStrengths
  // val signalStrengthGsm = telephonyManager.signalStrength?.getCellSignalStrengths(CellSignalStrengthGsm::class.java)
  // val signalStrengthLte = telephonyManager.signalStrength?.getCellSignalStrengths(CellSignalStrengthLte::class.java)
  // val signalStrengthWcdma = telephonyManager.signalStrength?.getCellSignalStrengths(CellSignalStrengthWcdma::class.java)
  networkSignal = NetworkSignal(signalStrength.toString(), simOperatorName)
  return networkSignal
}

1、显示获取TelephonyManager实例,

2、直接调方法telephonyManager.simOperatorName,获取运营商 3、telephonyManager.signalStrength?.cellSignalStrengths,返回正在使用的网络信息列表 4、至于telephonyManager.signalStrength?.getCellSignalStrengths(CellSignalStrengthGsm::class.java),则是获取Gsm这种通讯协议的网络信息,没有的话就返回的是空列表, 也可以指定其他通讯,有下面这些

 最后附上运行效果图

 可以看到RSRP是-98,符合NB设备信号需求。

 

 

 

 

           

标签:signalStrength,java,val,Android12,telephonyManager,获取,信号,getCellSignalStrengths
From: https://www.cnblogs.com/isleeping/p/17969446

相关文章

  • Gin GET POST 以及获取GET POST传值
    GinGETPOST以及获取GETPOST传值1Get请求传值packagemainimport( "net/http" "github.com/gin-gonic/gin")funcmain(){ r:=gin.Default() //http://127.0.0.1:8000/query?username=111&age=10&sex= //{"age":"10&......
  • Elementui中el-tree获取节点的选中、设置节点的选中
    this.$refs.tree.getCheckedNodes()//返回的是数组,包含所有选中的节点,不只是叶子节点。this.$refs.tree.setCheckedKeys(ids)//传递的是叶子节点的id合集例子:/***节点被点击时的回调*@paramdata-传递给data属性的数组中该节点所对应的对象*/nodeClick(data){c......
  • 254-layui table 获取当前列表的缓存数据
    首先,需要获取表格的ID1、表格工具栏的操作按钮获取,按钮位于表格的左上角或者右上角table.on('toolbar(itemFieldSrcTable1)',function(obj){varid=obj.config.id;varlayEvent=obj.event;active[layEvent].call(this,{tableIns:tableIns1,row:{name:''}});......
  • python获取当前执行py文件的路径
    1.os.getcwd() 只有路径,不包含py文件名path=os.getcwd()print(path)#结果:E:\pyworkspace\pycharmProjects\cdtest\oproject\Pubic 2.os.path.realpath(__file__)#包含了py文件path=os.path.realpath(__file__)print(path)#结果:E:\pyworkspace\pycharmProjects\c......
  • MFC---多线程(线程同步之信号量)
    内核对象的状态触发状态(有信号状态),表示有可用资源。未触发状态(无信号状态),表示没有可用资源工作原理以一个停车场是运作为例。假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待,此后来......
  • zabbix server获取的数据与客户端服务器实际数据不一致
    收到zabbix监控报警,提示某台服务器内存不足了: 我登录该服务器,发现内存明显还是充足的: 我在zabbixserver服务器上执行命令,以获取客户端的数据:/usr/local/zabbix/bin/zabbix_get-s客户端IP-p10050-k"vm.memory.size[available]"得到的结果为:3061157888这明显不......
  • easyui datebox 周选择器 结合moment.js获取一周的时间范围
    项目里用的easyui,用weekpicker的话需要与easyui代码有冲突会导致页面报错,所以直接改造一下easyui的datebox实现这一功能1<inputtype="text"class="easyui-datebox"data-options="formatter:myformatter,parser:myparser,onSelect:onSelect"id="S_Week">1......
  • ABC 等多个系统 每个系统下有多个附件 ,每个系统获取自己最新日期的文档
    1.假如有ABC等多个系统每个系统下有多个附件,每个系统获取自己最新日期的文档(每个文件都标有最新日期duptime)Java代码从表中查询出的list怎莫处理得到每个系统下面最新的文件Map<String,List<Attachment>>attachmentsBySystem=newHashMap<>();//对每个附件进行遍......
  • playwright获取B站用户评论
    一、简介使用自动化工具playwright获取B站视频下方评论区的用户名、用户性别、评论内容以及IP属地。二、获取思路进入视频页面,在Network中,发现评论文件存储在“main?oid=XXXX”中,且随着鼠标不断下滑,不断更新。那么,我们只需要设置模拟用户鼠标操作,且在下滑过程中设定好监听事件,不断......
  • Qt:获取WIFI列表
    示例:使用QT来获取Windows电脑WIFI列表中所有WIFI的名称,实际是执行CMD命令来完成(netshwlanshownetworks) //获取WIFI列表QProcessprocess;process.start("netshwlanshownetworks");process.waitForStarted();process.waitForFinished();QStringcmd_res_text=QSt......