2016-01-13 86 views
1

我正在嘗試處理新的Android Lollipop MediaProjection API。createScreenCaptureIntent不返回結果

我發現(至少在我的股票三星銀河S4 jfltexx)當我開始意圖獲取權限獲取屏幕(ProjectionManager.createScreenCaptureIntent()),我不會在onActivityResult結果,除非我已經檢查「唐「再詢問」在之前的試...

private static final int ALLOW_SCREENSHOT_REQ = 102; 

{ 
... 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      System.out.println("request permission"); 
      startActivityForResult(mProjectionManager.createScreenCaptureIntent(), ALLOW_SCREENSHOT_REQ); 
     } 
... 
} 

而結果處理:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    System.out.println("RebootActivity.onActivityResult(" + requestCode + "," + resultCode + ", data)"); 
} 

的權限對話框顯示很好,但我的行爲被隱藏的,它永遠不會去onActivityResult

任何想法出了什麼問題?

+0

你得到了這個答案嗎? – user2801184

回答

0

你有沒有嘗試過這樣的:看到完整的示例android-ScreenCapture

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_MEDIA_PROJECTION) { 
     if (resultCode != Activity.RESULT_OK) { 
      Log.i(TAG, "User cancelled"); 
      Toast.makeText(getActivity(), R.string.user_cancelled, Toast.LENGTH_SHORT).show(); 
      return; 
     } 
     Activity activity = getActivity(); 
     if (activity == null) { 
      return; 
     } 
     Log.i(TAG, "Starting screen capture"); 
     mResultCode = resultCode; 
     mResultData = data; 
     setUpMediaProjection(); 
     setUpVirtualDisplay(); 
    } 
} 

希望它會幫助你。