카테고리 없음

유니티 앱 재실행

JinFluenza 2018. 6. 4. 17:09

   public void RestartAppForAOS()

    {

        AndroidJavaObject AOSUnityActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");


        AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");

        AndroidJavaClass PendingIntentClass = new AndroidJavaClass("android.app.PendingIntent");

        AndroidJavaObject baseContext = AOSUnityActivity.Call<AndroidJavaObject>("getBaseContext");

        AndroidJavaObject intentObj

            = baseContext.Call<AndroidJavaObject>("getPackageManager").Call<AndroidJavaObject>("getLaunchIntentForPackage", baseContext.Call<string>("getPackageName"));


        AndroidJavaObject context = AOSUnityActivity.Call<AndroidJavaObject>("getApplicationContext");

        AndroidJavaObject pendingIntentObj

        = PendingIntentClass.CallStatic<AndroidJavaObject>("getActivity", context, 123456, intentObj, PendingIntentClass.GetStatic<int>("FLAG_CANCEL_CURRENT"));


        AndroidJavaClass AlarmManagerClass = new AndroidJavaClass("android.app.AlarmManager");

        AndroidJavaClass JavaSystemClass = new AndroidJavaClass("java.lang.System");


        AndroidJavaObject mAlarmManager = AOSUnityActivity.Call<AndroidJavaObject>("getSystemService", "alarm");

        long restartMillis = JavaSystemClass.CallStatic<long>("currentTimeMillis") + 100;

        mAlarmManager.Call("set", AlarmManagerClass.GetStatic<int>("RTC"), restartMillis, pendingIntentObj);


        JavaSystemClass.CallStatic("exit", 0);

    }