onActivityResult总是得到-1作为resultcode

时间:2017-09-18 03:42:14

标签: android onactivityresult

我尝试使用MediaProjectionManager来捕获屏幕截图。我采取的第一步是输入以下代码行:

MediaProjectionManager projectionManager = (MediaProjectionManager)this.getContext().getSystemService(Context.MEDIA_PROJECTION_SERVICE);
startActivityForResult(projectionManager.createScreenCaptureIntent(), 1);

然后我希望得到onActivityResult(int requestCode, int resultCode, Intent data)函数的响应。但是我发现resultCode总是-1,数据总是包含null uri和null mData。就像没有图像内容传递给onActivityResult

有谁知道导致此问题的原因或如何从数据中检索屏幕截图?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

只需查看Activity.RESULT_OK。

public static final int RESULT_OK = -1;

因此,如果你在resultCode中得到-1,那就很好。

阅读MediaProjectionManager documentation

之后的下一步

我读到你需要调用getMediaProjection。 尝试在onActivityResult中调用getMediaProjection方法,并为其提供resultCode和resultData。

要获得基本样本,请查看此代码=> MediaProjectionManager use

希望它可以帮到你!!

答案 1 :(得分:0)

请求代码始终为-1,如果它提供一些输出,则必须检查结果代码 并且是1.喜欢这个

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case 1:
                    //do your stuff
                break;


        }
    }
}