나는 ExportPlus 클래스 인 ExportDialog가 extends AlertDialog
이고 implements ActivityCompat.OnRequestPermissionsResultCallback
입니다. 나는 또한뿐만 아니라 매니페스트에 포함되어onRequestPermissionsResult가 AlertDialog 클래스에서 호출되지 않습니다.
ActivityCompat.requestPermissions(getOwnerActivity(),
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
권한을 호출하여 ExportDialog 클래스 내에서 권한을 요청하고 있습니다.
그러나 ActivityCompat.requestPermissions
이 호출되면 onRequestPermissionsResult가 권한 요청의 결과와 함께 호출되지 않습니다.
에뮬레이터에서 테스트 할 때 사용 권한 요청이 수행 중이며 사용 권한 요청을 성공적으로 사용하거나 거부 할 수 있습니다. onRequestPermissionResult 내의 코드가 결코 호출되지 않는다는 것입니다.
this과 같은 게시물 몇 개를 확인했는데 내 수업이 AlertDialog를 확장하므로이 문제에 도움이되지 않습니다. onRequestPermissionResult에 대한
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(getOwnerActivity(),
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
return false;
}
코드 : 요청 허가
코드 클래스 선언의
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
exportCategory();
} else {
Toast.makeText(getContext(), "Export functionality can't be carried out.", Toast.LENGTH_LONG).show();
}
}
}
}
코드 (CustomDialog는에 AlertDialog 확장) :
public class ExportDialog extends CustomDialog implements ActivityCompat.OnRequestPermissionsResultCallback { ... }
이 주셔서 감사합니다 미리 도움을 청하십시오!
onRequestPermissionsResult 메소드는 호출 된 '부모 (활동)'에서만 실행됩니다. – sunita