有两种方法可以做到这一点。
1.创建本地插件,在Unity中编写包装代码以调用本机代码(可能是调用本机函数使用最广泛的方法)
2.在Unity中完全编写代码,并使用AndroidJavaObject调用函数。
选项1 - 机Java代码+统一包装
这里有一个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!