2017-09-18 20 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이고 데이터에는 항상 null uri와 null mData가 포함되어 있습니다. 이미지 콘텐츠가 onActivityResult으로 전달 된 것과 같습니다.

누구든지이 문제의 원인이나 데이터에서 스크린 샷을 검색하는 방법을 알고 있습니까?

도움을 주시면 감사하겠습니다.

답변

2

Activity.RESULT_OK를 살펴보십시오.

public static final int RESULT_OK = -1; 

결과 코드에 -1이 표시되면 좋습니다. 난 당신이 getMediaProjection를 호출 할 필요가 읽어 MediaProjectionManager documentation

을 읽은 후

다음. onActivityResult에서 getMediaProjection 메소드를 호출하고 resultCode 및 resultData를 제공하십시오.

기본적인 샘플을 얻으려면이 코드를 보면 =>MediaProjectionManager use

가 당신을 도울 수 있기를 바랍니다!

+0

너무 감사 1.like입니다. 귀하의 답변은 잘 작동하고 많은 시간을 절약 할 수 있습니다. 성공적으로 샘플 코드로 스크린 샷을 캡처했습니다. – user1870797

+0

차가움. 정답이라고 생각한다면 동의하십시오. – olivejp

0

requestCode가 항상 -1은 일부 출력을 줄 경우 ResultCode가 을 확인해야하고이

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; 


     } 
    } 
}