有兩種方法可以做到這一點。
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!