我需要每10秒检查一次移动信号强度,以便将数据发送到服务器。 我在sqlite中有一些数据。在这10秒钟后,我发送了数据。 我有一个听众服务来获取信号的变化。服务启动时验证工作正常,但我无法在整个生命周期内获取信号数据。我的应用程序有一些活动,这项服务从一开始就开始。
如何及时验证服务和我的数据中的信号?
public MyService extends IntentService{
public MyService(){
...
telephonyManager = (TelephonyManager) App.getContext().getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(
new PhoneStateListener(){
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength){
int signalStrengthPercentage = 0;
int gsmSignalStrength = signalStrength.getGsmSignalStrength();
if(signalStrength != null && gsmSignalStrength != 99){
signalStrengthPercentage = (int) ((float) gsmSignalStrength / 31 * 100);
}
signalIsStrength = signalStrengthPercentage >= 50;
Log.e("ERROR", "Percentage: "+signalStrengthPercentage);
}
}, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
}
答案 0 :(得分:0)
循环播放,你会得到结果。
long delay = 10000;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
//your code to verify the signal strength
}
}, delay);