- Home /
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.
Answer by Bunny83 · Jan 27, 2016 at 06:11 PM
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.
Your answer
Follow this Question
Related Questions
Help building changes to .java file included in Unity supplied package. 1 Answer
How do I override an Android Java class in Unity? 1 Answer
Problem reading sensor plugin, event won't trigger 2 Answers
Now that Unity 4.1.2 broke the Android plugin examples, what do you use to learn them? 1 Answer
java android plugin worker thread ends up in Unity mainthread 1 Answer