본문 바로가기

안드로이드 권한 설정하기. checkDangerousPermissions

안드로이드 권한 설정하기 check DangerousPermissions


점점 안드로이드 어플리케이션의 보안이 중요시되고 있으면서 
권한. 즉, SD카드읽기-쓰기, 카메라, 오디오 녹음 등 권한을 처음에 얻고 사용하게 되었다.


이때, 권한을 체크하고 사용하게 하는 방법에 대해 살펴보겠다.



우선,

<AndroidManifest.xml> 파일에서 다음 밑줄 부분을 추가한다.


<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK"
/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".PlanInsertActivity"></activity>
</application>


필요한 권한을 여기에 작성 후,

메인에서 이런식으로 권한을 확인하고 얻는 메소드를 정의하여 사용할 수 있게 한다.

<main> 
private void checkDangerousPermissions() {
String[] permissions = {
android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
android.Manifest.permission.CAMERA,
android.Manifest.permission.RECORD_AUDIO
};

int permissionCheck = PackageManager.PERMISSION_GRANTED;
for (int i = 0; i < permissions.length; i++) {
permissionCheck = ContextCompat.checkSelfPermission(this, permissions[i]);
if (permissionCheck == PackageManager.PERMISSION_DENIED) {
break;
}
}

if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "권한 있음", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "권한 없음", Toast.LENGTH_LONG).show();

if (ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[0])) {
Toast.makeText(this, "권한 설명 필요함.", Toast.LENGTH_LONG).show();
} else {
ActivityCompat.requestPermissions(this, permissions, 1);
}
}
}


----
이거 때문에 db path에 관한 알지못하는 오류가 발생해서...
ㅠㅠㅠ 어제 10시간 넘게 해메고 찾았다...흑흑.. ㅠㅠㅠ