Android デバイスの信号強度の変化を傍受する必要があります。StackOverflow でさまざまなアプローチを見てきました。私の場合、これらの変更を見つけようとしているのは Android バックグラウンド サービスです。ただし、何が間違っているのかわかりませんが、変更が傍受されていないようで、電話を別の金属製の箱に入れて、機能するかどうかを確認しました. 設定に移動して値を見ると、OS がこれらの遷移を認識しているように見えます。
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;