Unity端
private AndroidJavaObject _testSDK;
private AndroidJavaObject _unityPlayer;
void Start()
{
//#if UNITY_ANDROID && !UNITY_EDITOR
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
_unityPlayer = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
var jc = new AndroidJavaClass("com.xxx.testlib.TestModuleSDK");
_testSDK = jc.CallStatic<AndroidJavaObject>("getInstance", _unityPlayer);
//#endif
}
public void InitCallback()
{
string result = _testSDK.Call<string>("test");
}
Java端
public class TestModuleSDK {
public static TestModuleSDK sInstance;
public static TestModuleSDK getInstance(Context context) {
if (sInstance == null) {
synchronized (TestModuleSDK.class) {
if (sInstance == null) {
sInstance = new TestModuleSDK(context);
}
}
}
return sInstance;
}
private TestModuleSDK(Context context) {
UnityPlayer.currentActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
UnityPlayer.UnitySendMessage("XXXSDK", "InitCallback", "");
}
});
}
public String test() {
return "测试成功";
}
}
文章评论