티스토리 뷰

일반적으로 권한이 필요한 코드들에서 권한 관련 코드를 작성 하는 경우 권한 요청을 하는 코드를 작성 한 후에 
권한 요청에 대해 onRequestPermissionsResult가 콜백 된 후 이후 로직을 처리 해야 합니다.

그런데 fragment에서 onRequestPermissionsResult이 콜백 되지 않는 경우가 있는데, 이럴때에는 아래 처럼 수정 해주면 됩니다.


가령 파일 저장소에 접급하는 권한을 요청 할 경우

 

1
2
3
4
5
6
7
8
final int RESULT_CODE = 1;
 
//문제가 되는 코드 
ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
 RESULT_CODE);
 
 
//수정 된 코드
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, RESULT_CODE);
 

 

차이점은 fragment에서는 activity가 아니기 때문에 activity코드를 빼 주어야 합니다.

댓글