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         }
 
 
http://www.cnblogs.com/Oceanou/p/4001690.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值