Я пытаюсь получить доступ к методу действия, который вызывает метод startActivityForResult, и он показывает ошибку
Я инициализировал это в методе onCreate класса
enter code here
mediaProjectionManager = (MediaProjectionManager) this.getSystemService(Context.MEDIA_PROJECTION_SERVICE);
здесь япытаясь получить доступ к методу mainActivity, который является startRecording.
public void onClick(View v) {
switch (v.getId()) {
case R.id.record_btn: {
mainActivity = new MainActivity();
if (!recording) {
expandedView.setVisibility(View.INVISIBLE);
collapsedView.setVisibility(View.VISIBLE);
mainActivity.startRecording(mediaProjectionManager);
Toast.makeText(getApplicationContext(), "start recording", Toast.LENGTH_SHORT).show();
recording = true;
}
else {
notificationManager.cancel(1);
stopRecording();
Toast.makeText(getApplicationContext(), "stop recording", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(FloatingWidgetService.this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
stopSelf();
recording = false;
startActivity(intent);
}
break;
}
}
Это метод mainActivity
public void startRecording(MediaProjectionManager mediaProjectionManager) {
this.mediaProjectionManager = mediaProjectionManager;
if (mediaProjection == null) {
startActivityForResult(this.mediaProjectionManager.createScreenCaptureIntent(), REQUEST_CODE);
return;
}
virtualDisplay = createVirtualDisplay();
mediaRecorder.start();
}
private VirtualDisplay createVirtualDisplay() {
return mediaProjection.createVirtualDisplay("C",
cw, ch, metricsDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
mediaRecorder.getSurface(), null , null);
}