赞
踩
AndroidJavaObject context = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
示例调用com.package包名下name类的getInstance方法获取实例
AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
AndroidJavaObject instance= jo.CallStatic<AndroidJavaObject>("getInstance");
示例调用com.package包名下name类的getInstance方法获取实例,通过实例调用非静态方法
AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
AndroidJavaObject instance = jo.CallStatic<AndroidJavaObject>("getInstance");
instance .Call("SetWidth", MediapipeConfig);
示例创建com.package包名下name类对象,并给对象内静态变量和非静态变量赋值,方法参数传递时使用较多
AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
jo.set<bool>("isBool",false);
jo.set<int>("count",false);
jo..SetStatic<float>("width",1.0f);
下边是Java中自定义的一个常见返回类型
public class ImageData { public int width; public int height; public byte[] bitmapData; } public class ReturnData { public int count; public ImageData imageData; } public static void ReturnData GetReturnData { ... return returnData; }
比如com.package包名下name类中,通过Call方法获取的返回值是C#中不存在的类,此时我们可能无法解析,但实际使用中我们并不关心这类具体是什么结构,想要的只是类中某个变量的值,这个时候可以使用Get方法取出其中的值。
AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
AndroidJavaObject instance = jo.CallStatic<AndroidJavaObject>("GetReturnData");
//获取count
int count = instance.Get<int>("count");
//将类型转换为AndroidJavaObject,在从中取出想要的参数
AndroidJavaObject imageData = instance.Get<AndroidJavaObject>("imageData");
byte[] bitmapData = imageData.Get<byte[]>("bitmapData");
int width = imageData.Get<int>("width");
int height = imageData.Get<int>("height");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。