【Unity】C#のスクリプトのみで Android アプリの詳細設定画面を開く
Android アプリの詳細設定画面とは以下の様な権限許可やストレージ容量が確認できる画面のこと。
この画面を Unity の C#スクリプトだけで呼び出してみます。
※Java のクラスを叩いています。
ユーティリティクラス
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RuntimeAndroidSettingHelper
{
private RuntimeAndroidSettingHelper() { }
private static AndroidJavaObject GetActivity()
{
using (var UnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
return UnityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
}
}
// 詳細設定ダイアログを開く
public static void RequestDetailSettings()
{
if (IsAndroidMOrGreater())
{
using (var activity = GetActivity())
{
var packageName = activity.Call<string>("getPackageName");
using (var uriClass = new AndroidJavaClass("android.net.Uri"))
using (var 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);
activity.Call("startActivity", intentObject);
}
}
}
}
}
上記ファイルをPlugins/Android フォルダ以下に配置します。 そして RequestDetailSettings を呼び出します。
RuntimeAndroidSettingHelper.RequestDetailSettings();
これでアプリの詳細画面を開くことが出来ます。