Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 及时检查手机信号强度_Android_Service - Fatal编程技术网

Android 及时检查手机信号强度

Android 及时检查手机信号强度,android,service,Android,Service,我需要每10秒检查一次手机信号强度,以便向服务器发送数据。 我在sqlite中有一些数据。在这10秒钟之后,我发送数据。 我有一个监听服务来获取信号上的变化。服务启动时验证工作正常,但我无法在整个生命周期中获取信号数据。我的应用程序有一些活动,这个服务从一开始就启动了 如何及时验证服务中的信号和我的数据 public MyService extends IntentService{ public MyService(){ ... telephonyManager = (Tele

我需要每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);
    }
}

循环这个,你就会得到结果

 long delay = 10000;
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {

            //your code to verify the signal strength

            }
        }, delay);

循环这个,你就会得到结果

 long delay = 10000;
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {

            //your code to verify the signal strength

            }
        }, delay);