os_request_permission 함수 설명
os_request_permission
함수는 특정 권한을 요청하는 데 사용됩니다. 요청할 권한은 문자열 형식으로 제공해야 하며, 형식은 "android.permission."입니다. 예를 들어, RECORD_AUDIO
권한을 요청하려면 다음과 같이 호출합니다:
os_request_permission("android.permission.RECORD_AUDIO");
이 함수는 Android 타겟에서만 사용할 수 있습니다. 여러 권한을 동시에 요청하려면 함수에 여러 인수를 전달하면 됩니다. 이후 시스템 비동기 이벤트가 발생하며, 내장된 async_load
DS 맵에는 다음과 같은 키/값 쌍이 포함됩니다:
키 | 설명 |
---|---|
"type" | 문자열 "permission_request_result"로, 트리거된 이벤트의 유형을 식별하는 데 사용됩니다. |
" |
요청된 권한을 문자열로 나타냅니다. 원래 함수 호출에서 요청한 모든 권한에 대한 키를 받게 됩니다. |
이 키는 다음 상수 중 하나와 같아질 수 있습니다:
상수 | 설명 |
---|---|
os_permission_granted | 권한이 부여되었음을 나타냅니다. |
os_permission_denied | 권한이 부여되지 않았음을 나타냅니다. |
다음 권한은 GameMaker에서 기본적으로 지원되지만, Google에서 "위험한" 권한으로 간주되므로 명시적으로 요청해야 합니다. 또한 일부 권한은 이 함수 없이 Android 게임 옵션을 사용하여 요청할 수 있습니다:
권한 | 설명 |
---|---|
android.permission.WRITE_EXTERNAL_STORAGE | 외부 저장소에 쓰기 권한 |
android.permission.READ_PHONE_STATE | 전화 상태 읽기 권한 |
android.permission.RECORD_AUDIO | 오디오 녹음 권한 |
앱 권한에 대한 더 많은 정보는 Android 문서에서 확인할 수 있습니다.
문법
os_request_permission(permissions...)
인수
인수 | 유형 | 설명 |
---|---|---|
permissions | String | 요청할 권한. 더 많은 인수를 추가하여 여러 권한을 요청할 수 있습니다. |
반환값
N/A
활용 예제
예제 1
Android OS 타입을 확인하고, "INTERNET" 권한이 부여되지 않은 경우 요청하는 코드입니다.
if (os_type == os_android) {
if (os_check_permission("android.permission.INTERNET") == os_permission_denied) {
os_request_permission("android.permission.INTERNET");
}
}
예제 2
외부 저장소에서 읽기 및 쓰기 권한을 확인하고, 권한이 허용된 경우 미디어 공유 기능을 실행하는 코드입니다.
var _read = "android.permission.READ_EXTERNAL_STORAGE";
var _write = "android.permission.WRITE_EXTERNAL_STORAGE";
if (os_check_permission(_write) && os_check_permission(_read)) {
MobileMedia_Share_Open("Title!", "image/gif", file);
} else {
os_request_permission(_write, _read);
}
이와 같은 방식으로 os_request_permission
함수를 활용하여 Android 앱에서 필요한 권한을 요청하고 관리할 수 있습니다.