2019
11.14

 

퍼미션 관련 처리를 할 때 거부를 한 경우

유저가 직접 앱 설정에 가서 권한을 켜 주어야한다.

 

그런데 개발자가 아닌 일반 유저가 직접 찾아서 설정을 켜기에는 힘들기 때문에

대부분의 앱에서는 앱 설정창을 열어서 유저가 권한을 설정할 수 있게 유도한다.

 

유니티에서도 플러그인 없이 가능한가 찾던 중 유저가 작성해놓은 코드를 테스트. 정상작동 확인.

 

 

 

 

try
{
#if UNITY_ANDROID
using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
using (AndroidJavaObject currentActivityObject = unityClass.GetStatic<AndroidJavaObject>("currentActivity"))
{
string packageName = currentActivityObject.Call<string>("getPackageName");
using (var uriClass = new AndroidJavaClass("android.net.Uri"))
using (AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("fromParts", "package", packageName, null))
using (var intentObject = new AndroidJavaObject("android.content.Intent", "android.settings.APPLICATION_DETAILS_SETTINGS", uriObject))
{
intentObject.Call<AndroidJavaObject>("addCategory", "android.intent.category.DEFAULT");
intentObject.Call<AndroidJavaObject>("setFlags", 0x10000000);
currentActivityObject.Call("startActivity", intentObject);
}
}
#endif
}
catch (Exception ex)
{
Debug.LogException(ex);
}

 

 

 

원문은 여기서 확인가능.

https://forum.unity.com/threads/redirect-to-app-settings.461140/