我尝试使用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
。
有谁知道导致此问题的原因或如何从数据中检索屏幕截图?
非常感谢任何帮助!
答案 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;
}
}
}