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?