IT/Android
[Android]fragment에서 onRequestPermissionsResult이 호출 되지 않을 때
Kanzler
2019. 4. 12. 20:32
일반적으로 권한이 필요한 코드들에서 권한 관련 코드를 작성 하는 경우 권한 요청을 하는 코드를 작성 한 후에
권한 요청에 대해 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코드를 빼 주어야 합니다.