How to write a java lib for unity as a plugin to make run another android app?

I want to run another android app, when finish my unity game.

Features needed

  • Run another app on android os with app name/project name
  • As a unity plugin, can be easily accessed by c#

Do you know how to achieve this features?

I read this about the unity plugin, and this about this about launcher.

There is a plugin, it seemd that it worked for me. But I do not have a payment method to but the aseest.

You don’t really need a plugin for that. You said you read the forum post about “launcher” so you have missed this post? It only uses pure JNI functions from C#. No additional plugins are needed.

I haven’t tested it myself. He doesn’t dispose any of the java objects he creates which is actually quite bad. It should be something like this:

// C#
public static void LaunchApp(string aBundleIdentifier)
{
    using(var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
    using(var unityActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"))
    using(var packageManager = unityActivity.Call<AndroidJavaObject>("getPackageManager"))
    {
        AndroidJavaObject launchIntent = null;
        bool fail = false;
        try
        {
            launchIntent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", aBundleIdentifier);
        }
        catch (System.Exception e)
        {
            fail = true;
        }
        if (fail || launchIntent == null)
        {
            // app is not installed
            Application.OpenURL("market://details?id=" + aBundleIdentifier);
        }
        else
        {
            // launch app
            unityActivity.Call("startActivity", launchIntent);
        }
        if (launchIntent != null)
            launchIntent.Dispose();
    }
}

As said, not tested.

edit
Of course to use this you need to pass the “bundle identifier” / “package name” of the other app. For example subway surfers has: “com.kiloo.subwaysurf”.

I’m not sure if “OpenURL” works with market links to send you to the appstore. You have to try it for yourself.