이 페이지에서는 애플리케이션이 기기의 데이터에 액세스하거나 빌트인 카메라 또는 마이크 등의 기기 기능을 사용할 수 있도록 사용자의 권한을 요청하는 방법을 설명합니다.
Google의 권한 요청 가이드라인에 따르면, 사용자가 최초로 권한 요청을 거부하는 경우 이러한 권한을 요청하는 이유를 표시하고 요청을 다시 표시하는 방법이 권장됩니다.
Android 기기에서 권한을 요청하는 시기 및 방법에 대한 자세한 내용은 Android 개발자 가이드에 있는 앱 권한 베스트 프랙티스를 참조하십시오.
런타임 권한 API에는 Android 버전 6(API 레벨 23)이 필요합니다. 애플리케이션의 타겟 API를 변경하려면 다음 단계를 따르십시오.
애플리케이션이 제한된 데이터 또는 특정 기기 기능의 권한을 요청하기 전에 Android 앱 매니페스트에 해당 권한을 선언해야 합니다.자세한 내용은 애플리케이션 권한 선언을 참조하십시오.
Android.Permission API는 애플리케이션이 현재 가지고 있는 권한을 확인하고 애플리케이션에 필요하지만 가지고 있지는 않은 권한을 요청하는 데 사용할 수 있는 기능을 제공합니다.
런타임 시 권한을 요청하는 프로세스에 대한 개요는 다음과 같습니다.
Permission.HasUserAuthorizedPermission을 사용하여 애플리케이션에 필요한 데이터 또는 기능에 대해 사용자가 이미 권한을 부여했는지 확인합니다.
이 API를 사용하는 방법을 보여주는 코드 예제는 Permission.HasUserAuthorizedPermission을 참조하십시오.
Permission.ShouldShowRequestPermissionRationale을 사용하면 특정 권한 요청에 대한 근거를 표시해야 하는지 확인할 수 있습니다.
근거가 필요한 경우, 애플리케이션에 특정 기기 기능에 대한 액세스가 필요한 이유를 포함한 메시지를 표시합니다. 메시지를 표시한 후 권한 요청을 전송합니다.
근거가 필요하지 않은 경우에는 바로 권한 요청을 전송합니다.
이 API를 사용하는 방법을 보여 주는 코드 예제는 Permission.ShouldShowRequestPermissionRationale을 참조하십시오.
Permission.RequestUserPermission을 사용하여 데이터 또는 기능을 사용하기 위한 권한을 요청할 수 있습니다. 이 메서드를 호출하면 Android는 사용자가 권한을 부여 또는 거부하는 데 사용할 수 있는 시스템 권한 다이얼로그를 엽니다.
이 API를 사용하는 방법을 보여주는 코드 예제는 Permission.RequestUserPermission을 참조하십시오.
Permission.RequestUserPermissions를 사용하면 사용자의 기기에서 한 번에 여러 리소스에 액세스하기 위한 권한을 요청할 수 있습니다. 이 메서드는 각 문자열이 기기의 카메라 , 마이크 또는 위치와 같은 리소스에 액세스할 수 있는 특정 권한을 나타내는 문자열 배열을 사용합니다.
이러한 메서드는 사용자가 권한을 부여하거나 거부한 후 실행할 코드를 지정하는 데 사용할 수 있는 PermissionCallbacks 오브젝트를 받을 수 있습니다.이를 사용하여 사용자가 권한 요청을 승인하는 즉시 기기 기능을 사용할 수 있습니다.예를 들어, 마이크에서 녹음을 시작할 수 있습니다.
팁: 권한을 요청할 때 사용자에게 애플리케이션에 해당 기능이 필요한 이유를 설명하는 메시지를 표시하는 것이 가장 좋습니다.
참고:사용자가 시스템 권한 다이얼로그에서 Do not ask me again 옵션을 활성화했거나 권한을 두 번 이상 거부한 경우 RequestUserPermission()
은 시스템 다이얼로그를 열지 않습니다.이 경우 사용자는 애플리케이션 권한 설정으로 이동하여 수동으로 권한을 활성화해야 합니다.
사용자가 애플리케이션에 필요한 권한을 거부하는 경우 사용자가 권한 요청 다이얼로그를 수동으로 표시할 수 있는 방법을 제공하십시오.이 작업을 수행하는 방법은 애플리케이션에 따라 다르지만, 한 가지 해결책은 Permission.RequestUserPermission을 호출하는 버튼을 제공하는 것입니다.