我需要拦截安卓设备上信号强度的变化。我在 StackOverflow 中看到了不同的方法。就我而言,它是一个试图找到这些变化的 Android 后台服务。但是,我看不出我做错了什么,但看起来更改没有被拦截,我已经将手机放在不同的金属盒中,看看它是否有效。通过转到设置并查看那里的值,操作系统似乎知道这些转换。
public class SignalStateListener extends PhoneStateListener{
private int signalStrength;
public SignalStateListener (int signalStrength){
this.signalStrength = signalStrength;
}
@Override
public void onSignalStrengthChanged(int asu){
Log.e(TAG, "[[[[[Signal strength changed]]]]]]");
this.signalStrength = asu;
}
public int getSNR(){
return this.signalStrength;
}
}
//in onCreate()
tm = (TelephonyManager) getSystemService (Context.TELEPHONY_SERVICE);
listener = new SignalStateListener(0);
tm.listen(listener, PhoneStateListener.LISTEN_SIGNAL_STRENGTH);
private TelephonyManager tm = null;
private SignalStateListener listener = null;