Я хочу, чтобы l oop вернул жизнь Activity, когда у меня выключен экран смартфона - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в этом android Stud ios, и я программирую приложение, которое, когда слышен шум, приложение активируется и звучит звук, когда звук заканчивается, приложение активируется снова и снова, когда шум звуки приложение активируется и возвращается к звуку. Это делается правильно при включенном экране, но если экран блокирует приложение, когда оно активируется и звучит, что звук не активируется снова, вам просто нужно активировать экран, чтобы активировать его снова. Пожалуйста, кто-нибудь знает, как сделать этот процесс l oop, даже если экран заблокирован. Спасибо.

@Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);


        mActivateBtn.setOnClickListener(this);


        mSensor = new DetectNoise();
        PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "NoiseAlert");


        // esto es para mostrar los elementos en el spinner de sensibilidad
        ArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(context, R.layout.support_simple_spinner_dropdown_item, arraylistSensibilidad);
        spinnerSensibilidad.setAdapter(arrayAdapter2);




                if (mRunning) {

                    mActivateBtn.setText("Desactivar");
                }


        }






        @Override
        public void onClick (View view){
            switch (view.getId()) {
                case R.id.btnActivate:
                    initializeApplicationConstants();
                    if (countDownTimer != null) {
                        countDownTimer.cancel();
                    }
                    if (!mRunning) {
                        mRunning = true;
                        if (mp != null) {
                            if (mp.isPlaying()) {
                                mp.stop();
                                mp.reset();
                            }
                            mp = null;
                        }
                        start();





                        mActivateBtn.setText("Desactivar");

                    } else if (mRunning) {
                        mActivateBtn.setText("Activar");
                        stop();





                        if (mp != null) {
                            if (mp.isPlaying()) {
                                mp.stop();
                                mp.reset();
                            }
                            mp = null;
                        }

                    }
                    break;

            }
        }

        @Override
        public void onResume () {

            super.onResume();


        }


        @Override
        public void onDestroy () {

            super.onDestroy();
            stop();
        }

        private void start () {

            if (ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {

                ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.RECORD_AUDIO},
                        RECORD_AUDIO);
            }

            //Log.i("Noise", "==== start ===");
            mSensor.start();
            if (!mWakeLock.isHeld()) {
                mWakeLock.acquire();
            }
            //Noise monitoring start
            // Runnable(mPollTask) will execute after POLL_INTERVAL
            mHandler.postDelayed(mPollTask, POLL_INTERVAL);
        }

        private void stop () {
            Log.d("Noise", "==== Stop Noise Monitoring===");
            if (mWakeLock.isHeld()) {
                mWakeLock.release();

            }

            mHandler.removeCallbacks(mSleepTask);
            mHandler.removeCallbacks(mPollTask);
            //poner aqui star() y en vez de false true
            mSensor.stop();
            mRunning = false;
            mActivateBtn.setText("Activar");


        }


        private void initializeApplicationConstants () {
            // Set Noise Threshold
            mThreshold = 12;
        }

        private void updateDisplay (String status,double signalEMA){



        }

        private void callForHelp ( double signalEMA){
            mp = new MediaPlayer();
            int index = PreferenceUtils.getInstance(context).getIntValue(Constants.SOUND_KEY, 0);
            if (index == 12) {
                mp = MediaPlayer.create(context, Uri.parse(Constants.getsound(getContext()).get(index).getUri()));
            } else {
                mp = MediaPlayer.create(context, Constants.getsound(getContext()).get(index).getPath());
            }

            mp.start();
            mp.setLooping(true);
            stop();

            countDownTimer = new CountDownTimer(s1 * 60000, 10000) {
                @Override
                public void onTick(long l) {


                }

                @Override
                public void onFinish() {
                    mActivateBtn.performClick();
                }

            }.start();




        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...