onSignalStrengthChanged()
已经过期,但是监听PhoneStateListener.LISTEN_SIGNAL_STRENGTHS
的话。
如果使用signalStrength.level()
又会提示需要api23。
其实getLevel()
方法并不是api23新加的,只是之前是hide方法。如下所示,用反射拿出来即可。
同学们也可自行加入版本判断。
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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)
|