recyclerview 어댑터를 사용하여 recyclerview를 가지고이 recyclerview에서 데이터를 설정하는 조각이 있습니다.
이제 어댑터의 목록 항목에 버튼이있어 Android의 새 권한 모델에 대해 Android의 READ_EXTERNAL_STORAGE 권한을 확인해야합니다.
이 어댑터의 조각에서 권한이 부여되었는지 여부를 확인하고 권한이 아직 부여되지 않은 경우 권한을 요청하기 위해 새 기능을 만들었습니다.
어댑터의 매개 변수로 MyFragment.this를 전달하고 어댑터에서 버튼 클릭으로 조각의 메소드를 호출합니다.
아래 코드를 사용하여 조각으로 requestPermission을 호출했습니다.
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
onRequestPermissionsResult
아래 코드를 사용하여 조각 의 메서드를 재정의했습니다 .
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case ConstantVariables.READ_EXTERNAL_STORAGE:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, proceed to the normal flow.
startImageUploading();
} else {}
그러나이 Activity의 onRequestPermissionsResult 메소드가 호출되는 대신 호출되지 않습니다.
조각의 부모 활동에서도 동일한 onRequestPermissionsResult 메소드를 정의했으며 호출되고 있습니다.
활동의 onRequestPermissionsResult 메소드를 제거 할 수 없지만 프래그먼트에서 권한을 요청할 때 프래그먼트의 onRequestPermissionsResult 메소드를 호출하려고합니다. 어떻게해야합니까? 내가 여기서 뭔가 잘못하고 있습니까, 누군가 여기에 아이디어가 있으면 도와주세요.