首页 > 代码库 > Unity调用安卓的两种方法
Unity调用安卓的两种方法
总结的两种方法,供参考。
方法一
(要将方法写到UnityPlayerActivity 类下,不然调用不到):
1 //获得类 2 3 AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 4 5 6 7 //获得java对象 8 9 AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");10 11 12 13 //执行方法14 15 jo.Call("Method",arg);16 17
方法二:
1 //JNI 新建一个线程 2 3 AndroidJNI.AttachCurrentThread(); 4 5 6 7 //获得类 8 9 IntPtr cls = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");10 11 IntPtr fid = AndroidJNI.GetStaticFieldID(cls, "currentActivity", "Landroid/app/Activity;");12 13 IntPtr obj = AndroidJNI.GetStaticObjectField(cls, fid);14 15 16 17 //获得类18 19 IntPtr cls_OurAppActitvityClass = AndroidJNI.FindClass("com/bodhi/TalkingBodhi");20 21 22 23 //获得方法24 25 IntPtr enableMethod = AndroidJNI.GetMethodID(cls_OurAppActitvityClass, "EnableADs", "V");26 27 28 29 //如果方法存在,则执行30 31 if (AndroidJNI.IsInstanceOf(obj, cls_OurAppActitvityClass) != false) {32 33 jvalue[] myArray = new jvalue[1];34 35 AndroidJNI.CallVoidMethod(obj, enableMethod, myArray);36 37 }
Unity调用安卓的两种方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。