ANDROID 6.0 이 실행 을 신청 할 때 FRAGMENT 에서 ONREQUESTPERMISSION SRESULT 에 대한 권한 을 되 돌리 지 않 는 문 제 를 해결 합 니 다.
2366 단어 androidPermissions
Fragment 에서 실 행 될 때 권한 의 특수 처리,Fragment 에서 권한 을 신청 하거나 Activity Compat.requestPermissions 를 사용 하지 마 십시오.Fragment 의 requestPermissions 방법 을 직접 사용 하지 않 으 면 Activity 의 onRequestPermissions Result 로 되 돌아 갑 니 다.
private void runPermission(){
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
// WRITE_EXTERNAL_STORAGE
//ActivityCompat.requestPermissions(getActivity(),
// new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE);
// Fragment requestPermissions
requestPermissions(new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE);
}else {
startCamera();//
}
}
그리고 Fragment 에서 onRequestPermissions Result 방법 을 계승 합 니 다.
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CAMERA_REQUEST_CODE) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
startCamera();//
} else {
// Permission Denied
Toast.makeText(getActivity(), " !", Toast.LENGTH_SHORT).show();
}
}
}
Fragment 에 Fragment 를 끼 워 넣 고 하위 Fragment 에 request Permissions 방법 을 사용 하면 onRequestPermissions Result 가 되 돌아 오지 않 습 니 다.getParent Fragment().request Permissions 방법 을 사용 하 는 것 을 권장 합 니 다.이 방법 은 부모 Fragment 에 있 는 onRequestPermissions Result 로 되 돌아 갑 니 다.다음 코드 를 추가 하면 하위 Fragment 로 되 돌 릴 수 있 습 니 다.
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
List fragments = getChildFragmentManager().getFragments();
if (fragments != null) {
for (Fragment fragment : fragments) {
if (fragment != null) {
fragment.onRequestPermissionsResult(requestCode,permissions,grantResults);
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.