【问题标题】:createScreenCaptureIntent doesn't return resultcreateScreenCaptureIntent 不返回结果
【发布时间】:2016-01-13 13:17:31
【问题描述】:

我正在尝试处理新的 Android Lollipop MediaProjection API。

我发现(至少在我的三星 Galaxy S4 jfltexx 股票上)当我开始打算获得捕获屏幕的权限 (ProjectionManager.createScreenCaptureIntent()) 时,我不会在 onActivityResult 中得到结果,除非我有在前面的尝试中检查了“不再询问”...

private static final int ALLOW_SCREENSHOT_REQ = 102;

{
 ...
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            System.out.println("request permission");
            startActivityForResult(mProjectionManager.createScreenCaptureIntent(), ALLOW_SCREENSHOT_REQ);
        }
 ...
}

以及结果处理:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    System.out.println("RebootActivity.onActivityResult(" + requestCode + "," + resultCode + ", data)");
}

权限对话框显示良好,但我的活动被隐藏了,它永远不会转到onActivityResult。

知道出了什么问题吗?

【问题讨论】:

  • 你得到答案了吗?

标签: android android-5.0-lollipop android-mediaprojection


【解决方案1】:

你有没有这样尝试过:查看完整示例android-ScreenCapture

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_MEDIA_PROJECTION) {
        if (resultCode != Activity.RESULT_OK) {
            Log.i(TAG, "User cancelled");
            Toast.makeText(getActivity(), R.string.user_cancelled, Toast.LENGTH_SHORT).show();
            return;
        }
        Activity activity = getActivity();
        if (activity == null) {
            return;
        }
        Log.i(TAG, "Starting screen capture");
        mResultCode = resultCode;
        mResultData = data;
        setUpMediaProjection();
        setUpVirtualDisplay();
    }
}

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 2020-04-05
    • 2018-03-19
    • 2011-07-17
    • 2015-09-29
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多