목차

반응형

문제

유니티에서 권한 요청을 하고 나서 수락을 하면 화면이 멈춘다.

 

원인

문제가 발생했을 때 떠놓은 로그다.

음성 녹음 권한을 물어본다. -> Activity pause timeout for ActivityRecord

권한을 물어보는 창에서 잠시 기다리면

Timeout while trying to puase the Unity Engine.이 뜬다. 아마 유니티 엔진이 멈춘 것 같다.

아마 권한 요청을 하면서 잠시 유니티를 멈춘 것 같은데 수락을 해도 아무 로그가 나오지 않고 그 상태에서 멈춰버린다.

 

 

해결

안드로이드 권한을 런타임 중에 획득할 수 있도록 하는 에셋을 이용해서 해결

https://assetstore.unity.com/packages/tools/integration/android-runtime-permissions-117803

 

Android Runtime Permissions - Asset Store

Introductory price.. Not! It will always remain Free. Grab it whenever you want! About This plugin helps you query/request runtime permissions synchronously on Android M and later. Features - It is synchronous! Request a permission and process the result i

assetstore.unity.com

 

필요한 것 3가지

1. android manifest 설정

/Plugins/Android/AndroidManifest.xml

파일에 application 태그 안에 <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" /> 를 추가해준다.

위의 설정으로 유니티에서 자체적으로 권한을 요청하지 않도록 설정한다.

 

2. 필요한 권한 코드 확인

아마 AndroidManifest.xml파일에 필요한 권한이 쓰여있을 것이다.

필요한 권한 코드를 확인해서 기록해놓는다.

3. 권한 획득하는 소스코드 작성

나 같은 경우는 게임을 시작할 때 권한을 요청하고 권한 습득하면 화면을 넘어가도록 해놨다.

 

더 자세한 튜토리얼이 궁금하다면 에셋의 깃 설명서를 참고하도록 하자.

https://github.com/yasirkula/UnityAndroidRuntimePermissions

 

yasirkula/UnityAndroidRuntimePermissions

A native Unity plugin to handle runtime permissions on Android M+ - yasirkula/UnityAndroidRuntimePermissions

github.com

 

반응형