You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求帮助:将代码中已废弃的startActivityForResult替换为onActivityResult实现

替换废弃startActivityForResult的完整修改方案

AndroidX提供的Activity Result API是官方推荐的替代方案,以下是适配后的代码:

1. 声明ActivityResultLauncher成员变量

在你的Activity/Fragment类中添加:

private ActivityResultLauncher<Intent> screenCaptureLauncher;

2. 在初始化阶段注册回调(如onCreate方法内)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
    
    // 其他初始化逻辑...
    
    // 注册屏幕捕获授权的回调
    screenCaptureLauncher = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        result -> {
            if (result.getResultCode() == RESULT_OK && result.getData() != null) {
                // 获取授权后的MediaProjection实例
                mediaProjection = mMediaProjectionManager.getMediaProjection(result.getResultCode(), result.getData());
                // 继续执行屏幕录制流程
                mVirtualDisplay = createVirtualDisplay();
                mMediaRecorder.start();
            }
        }
    );
}

3. 修改原有的录制相关方法

private void toggleScreenShare(View v) {
    ToggleButton toggleButton=(ToggleButton)  v;
    if(toggleButton.isChecked()){
        initRecorder();
        recordScreen();
        
    }
    else {
        mMediaRecorder.stop();
        mMediaRecorder.reset();
        stopRecordScreen();

        mVideoView.setVisibility(View.VISIBLE);
        mVideoView.setVideoURI(Uri.parse(mVideoUrl));
        mVideoView.start();
    }
}

private void recordScreen() {
    if(mediaProjection==null){
        // 启动屏幕捕获授权界面(替代原startActivityForResult)
        screenCaptureLauncher.launch(mMediaProjectionManager.createScreenCaptureIntent());
        return;
    }

    mVirtualDisplay=createVirtualDisplay();
    mMediaRecorder.start();
}

关键说明

  • 原onActivityResult的逻辑被整合到registerForActivityResult的回调中,用户完成授权后会自动触发后续录制流程
  • 确保你的项目已依赖AndroidX库,若未依赖需先添加对应Gradle依赖

内容的提问来源于stack exchange,提问作者RAJ AGRAHARI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:05:38