onActivityResult 总是得到 -1 作为 resultcode

onActivityResult always got -1 as resultcode

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

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

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

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

非常感谢任何帮助!

看看Activity.RESULT_OK。

public static final int RESULT_OK = -1;

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

看完MediaProjectionManager documentation

下一步

我了解到您需要调用 getMediaProjection。 尝试在您的 onActivityResult 中调用 getMediaProjection 方法并为其提供 resultCode 和 resultData。

要获取基本示例,请查看此代码 => MediaProjectionManager use

希望对您有所帮助!!

requestcode 总是 -1 如果它给出一些输出你必须检查 resultcode 1.like 这个

 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;


        }
    }
}