Существует два способа сделать это.
1. Создайте собственный плагин, напишите код оболочки в Unity, чтобы вызвать собственный код (возможно, наиболее широко используемый способ вызова собственных функций).
2. Напишите код целиком в Unity и используйте AndroidJavaObject для вызова функций.
Вариант 1 - Native кода Java + Unity Упаковочный
Вот link я нашел на SO для кода для совместного использования.
Вот link к одному из моих старых ответов о плагинах. Вы можете изменить код там, чтобы он соответствовал вашим потребностям.
Вариант 2 - нет собственного кода.
Этот способ немного интереснее. Мы используем Unity AndroidJavaClass & AndroidJavaObject, чтобы полностью исключить необходимость JAR. Просто вставьте код ниже в сценарий C# и вызовите функцию. (Примечание, я не пробовал этот код, могут быть ошибки. Если есть, дайте мне знать, и я буду править мой ответ)
private static AndroidJavaObject activity = null;
private static void CreateActivity() {
#if UNITY_ANDROID && !UNITY_EDITOR
if(activity == null)
activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").
GetStatic<AndroidJavaObject>("currentActivity");
#endif
}
public static void ShareActivity (string title, string subject, string body) {
CreateActivity();
AndroidJavaObject sharingIntent = new AndroidJavaObject("android.content.Intent", "android.intent.action.SEND")
.Call<AndroidJavaObject>("setType", "text/plain")
.Call<AndroidJavaObject>("putExtra", "android.intent.extra.TEXT", body)
.Call<AndroidJavaObject>("putExtra", "android.intent.extra.SUBJECT", subject);
AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", activity)
.CallStatic<AndroidJavaObject>("createChooser", sharingIntent, title);
activity.Call("startActivity", intent);
}
Не забудьте добавить активности в свой AndroidManifest. XML!