안드로이드 앱 초기 실행시 다음과 같이 런타임 권한 요청
예를 들어 AndroidManifest.xml 에 다음과 같이 권한을 설정해두었으면
초기 실행시 해당 권한들에 대한 허용을 받음(인터넷은 자동으로 되어 따로 권한을 받지 않습니다.)
<!-- 인터넷 사용 권한 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 알림 사용 권한-->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- 카메라 사용 권한-->
<uses-permission android:name="android.permission.CAMERA"/>
우선 전체적인 코드는 다음과 같습니다.
public class MainActivity extends AppCompatActivity {
private static final int MULTIPLE_PERMISSION = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//런타임 권한 체크
if(!hasPermissions(this, PERMISSIONS)){
//권한이 없는 경우 권한 요청
ActivityCompat.requestPermissions(this, PERMISSIONS, MULTIPLE_PERMISSION);
}
}
//권한 요청 목록 배열 SET
private String[] PERMISSIONS = {
Manifest.permission.INTERNET,
Manifest.permission.POST_NOTIFICATIONS,
Manifest.permission.CAMERA
};
//권한 확인
public static boolean hasPermissions(Context context, String... permissions){
if(context != null && permissions != null){
for(String permission : permissions){
if(ActivityCompat.checkSelfPermission(context,permission)!=PackageManager.PERMISSION_GRANTED){
return false;
}
}
}
return true;
}
}
메소드별 설명을 드리겠습니다.
AndroidManifest.xml 에 설정한 권한을 배열로 받습니다.
//권한 요청 목록 배열 SET
private String[] PERMISSIONS = {
Manifest.permission.INTERNET,
Manifest.permission.POST_NOTIFICATIONS,
Manifest.permission.CAMERA
};
그리고 권한이 허용되었는지 체크하고 안되어 있으면 권한 요청을 합니다.
//권한 확인
public static boolean hasPermissions(Context context, String... permissions){
if(context != null && permissions != null){
for(String permission : permissions){
if(ActivityCompat.checkSelfPermission(context,permission)!=PackageManager.PERMISSION_GRANTED){
return false;
}
}
}
return true;
}
간단하게 런타임 권한 요청을 해보았습니다.
감사합니다.
'프로그래밍 > 안드로이드[Android]' 카테고리의 다른 글
안드로이드 SHA-1 확인(디버그 서명 인증서) (0) | 2023.02.16 |
---|---|
[안드로이드] 카카오 톡 로그인 서비스 구현 [3/3] (0) | 2021.04.11 |
[안드로이드] 카카오 톡 로그인 서비스 구현 [2/3] (0) | 2021.04.11 |
[안드로이드] 카카오 톡 로그인 서비스 구현 [1/3] (0) | 2021.04.11 |
[안드로이드] Logcat 출력 시 색상 변경하기. (0) | 2020.09.03 |