我出错了。 (在空对象引用上为“ android.app.ActivityThread.getApplicationThread()”)

时间:2019-05-22 05:48:50

标签: java android android-mediaprojection mediaprojectionmanager

我正在尝试访问一种调用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);
}

0 个答案:

没有答案