0
我需要攔截Android設備上信號強度的變化。我在StackOverflow中看到過不同的方法。在我的情況下,這是一個Android背景服務,試圖找到這些變化。但是,我看不到我做錯了什麼,但看起來這些更改不會被攔截,而且我已將手機放在不同的金屬盒中以查看它是否有效。通過設置並查看其中的值,它看起來像操作系統知道這些轉換。PhoneStateListener更改不處理
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;
我按照你的方式解決了問題。我找不到爲什麼onCellLocationChanged和onSignalStrengthsChanged停止調用的方法 –