如何从 Unity Android 应用程序打开 Android 系统设置

Jun*_*min 6 c# android unity-game-engine

我尝试从 Unity Android 应用程序打开系统设置,但收到以下错误:

UnityEngine.AndroidJavaException:android.content.ActivityNotFoundException:找不到处理意图的活动 {act =android.settings.ACTION_SETTINGS cat=[android.intent.category.DEFAULT] dat=package:com.xxx.xxxxx flg=0x10000000}

这是我的代码:

try
{
    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.ACTION_SETTINGS", uriObject))
        {
            intentObject.Call<AndroidJavaObject>("addCategory", "android.intent.category.DEFAULT");
            intentObject.Call<AndroidJavaObject>("setFlags", 0x10000000);
            currentActivityObject.Call("startActivity", intentObject);
        }
    }
}
catch (Exception e)
{
    Debug.Log(e);
}
Run Code Online (Sandbox Code Playgroud)

小智 1

(删除ACTION_)更改\xef\xbc\x9aandroid.settings.SETTINGS

\n

  • 虽然这可能会回答OP的问题,但请允许在您的答案中添加更多细节和解释 (4认同)