private final int PERMISSIONS_REQUEST_RESULT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.READ_EXTERNAL_STORAGE)) {
//권한을 거절하면 재 요청을 하는 함수
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSIONS_REQUEST_RESULT);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
if (PERMISSIONS_REQUEST_RESULT == requestCode) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "권한 요청이 됐습니다.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "권한 요청을 해주세요.", Toast.LENGTH_SHORT).show();
finish();
}
return;
}
}
그리고 매니페스트에
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
추가 해주면 권한 요청이 완료된다.
'ANDROID > ANDROIDSTUDIO' 카테고리의 다른 글
[안드로이드] execute로 데이터 전송후 리턴 받기 (0) | 2017.12.14 |
---|---|
[안드로이드] 어플이 종료되도 백그라운드에서 실행하기 (0) | 2017.12.12 |
[안드로이드] 디바이스 정보 가져오기 (0) | 2017.12.12 |
[안드로이드] 스튜디오 매니페스트 적용 (0) | 2017.12.11 |
[안드로이드] 스튜디오 페이지 전환 (0) | 2017.12.11 |