美文网首页
Android端信号强度监听,api23?

Android端信号强度监听,api23?

作者: _蘇芳_ | 来源:发表于2019-11-13 11:25 被阅读0次

    onSignalStrengthChanged()已经过期,但是监听PhoneStateListener.LISTEN_SIGNAL_STRENGTHS的话,使用signalStrength.level()又会提示需要api23。
    其实getLevel()方法并不是api23新加的,只是之前是hide方法。如下所示,用反射拿出来即可。
    同学们也可自行加入版本判断。

            val service1 = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
            service1.listen(object:PhoneStateListener(){
                override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
                    super.onSignalStrengthsChanged(signalStrength)
                    val javaClass = signalStrength.javaClass
                    val method = javaClass.getDeclaredMethod("getLevel")
                    if (method != null) {
                        method.isAccessible = true
                        val invoke = method.invoke(signalStrength)
                        LogUtils.d("invoke:$invoke")
                    }
                }
            },PhoneStateListener.LISTEN_SIGNAL_STRENGTHS)
    

    相关文章

      网友评论

          本文标题:Android端信号强度监听,api23?

          本文链接:https://www.haomeiwen.com/subject/dmdhictx.html