How to screen record in Android 12

Viewed 13

In my application I want create screen recorder and I want when complete CountDownTimer automatically call screen recorder.
I write below codes, but but after finish timer not start recorder service.

My Codes :

private CountDownTimer reverseTimer(int second) {
    return countDownTimer = new CountDownTimer(second * 1000, 1000) {
        @SuppressLint("SetTextI18n")
        @Override
        public void onTick(long millisUntilFinished) {
            int second = (int) (millisUntilFinished / 1000);
            if (millisUntilFinished < 1100) {
                onFinish();
            } else {
                txtTesterCounter.setText(App.enToFa(second + ""));
            }
        }

        @Override
        public void onFinish() {
            if (mMediaProjection == null && !isServiceRunning(RecorderService.class)) {
                //Request Screen recording permission
                startActivityForResult(mProjectionManager.createScreenCaptureIntent(), ConstKeys.SCREEN_RECORD_REQUEST_CODE);
            } else if (isServiceRunning(RecorderService.class)) {
                App.showShortToast("Recorder is actived");
            }
        }
    };
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //The user has denied permission for screen mirroring. Let's notify the user
    if (resultCode == RESULT_CANCELED && requestCode == ConstKeys.SCREEN_RECORD_REQUEST_CODE) {
        Log.e("ServiceErrors","ActivityCount : " + resultCode);
        Toast.makeText(this, "Not access to recorder", Toast.LENGTH_SHORT).show();
        finish();
        return;
    }

    Intent recorderService = new Intent(this, RecorderService.class);
    recorderService.setAction(ConstKeys.SCREEN_RECORDING_START);
    recorderService.putExtra(ConstKeys.RECORDER_INTENT_DATA, data);
    recorderService.putExtra(ConstKeys.RECORDER_INTENT_RESULT, resultCode);

    if (Build.VERSION.SDK_INT >= 26) {
        startForegroundService(recorderService);
    } else {
        startService(recorderService);
    }

    finish();
}

I write log code for resultCode and show me 0. I allow access for recorder permission but again show me RESULT_CANCELED !!!

How can I fix it?

0 Answers
Related