2017-09-18 120 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; 


     } 
    } 
}