2017-09-18 117 views
0

我尝试使用MediaProjectionManager来捕获屏幕截图。第一步我采取的是输入的代码下面几行:onActivityResult始终得到-1作为结果代码

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

有谁知道是什么原因导致了这个问题,或者如何从数据中获取屏幕截图?

任何帮助非常感谢!

回答

2

只要看看Activity.RESULT_OK。

public static final int RESULT_OK = -1; 

所以,如果你在resultCode中得到-1,那你就很好。阅读MediaProjectionManager documentation

,我读了你需要调用getMediaProjection后

下一步。 尝试在onActivityResult中调用getMediaProjection方法,并为其提供resultCode和resultData。

获得一个基本的样本,看看这段代码=>MediaProjectionManager use

希望它可以帮助你!

+0

太谢谢你了。你的回答很好,并节省了我很多时间。我用你的示例代码成功捕获了截图。 – user1870797

+0

很酷。如果您认为这是正确的答案,请接受它。 – olivejp

0

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; 


     } 
    } 
}