UnityEngine.AndroidJavaProxy.Invoke C# (CSharp) Method

Invoke() public method

Called by the java vm whenever a method is invoked on the java proxy interface. You can override this to run special code on method invokation, or you can leave the implementation as is, and leave the default behavior which is to look for c# methods matching the signature of the java method.

public Invoke ( string methodName, AndroidJavaObject javaArgs ) : AndroidJavaObject
methodName string Name of the invoked java method.
javaArgs AndroidJavaObject Arguments passed from the java vm - all objects are represented by AndroidJavaObject, int for instance is represented by a java.lang.Integer object.
return AndroidJavaObject
        public virtual AndroidJavaObject Invoke(string methodName, AndroidJavaObject[] javaArgs)
        {
            object[] args = new object[javaArgs.Length];
            for (int i = 0; i < javaArgs.Length; i++)
            {
                args[i] = _AndroidJNIHelper.Unbox(javaArgs[i]);
            }
            return this.Invoke(methodName, args);
        }
    }

Same methods

AndroidJavaProxy::Invoke ( string methodName, object args ) : AndroidJavaObject

Usage Example

コード例 #1
0
        public static IntPtr InvokeJavaProxyMethod(AndroidJavaProxy proxy, IntPtr jmethodName, IntPtr jargs)
        {
            int num = 0;

            if (jargs != IntPtr.Zero)
            {
                num = AndroidJNISafe.GetArrayLength(jargs);
            }
            AndroidJavaObject[] array = new AndroidJavaObject[num];
            for (int i = 0; i < num; i++)
            {
                IntPtr objectArrayElement = AndroidJNISafe.GetObjectArrayElement(jargs, i);
                array[i] = ((!(objectArrayElement != IntPtr.Zero)) ? null : new AndroidJavaObject(objectArrayElement));
            }
            IntPtr result;

            using (AndroidJavaObject androidJavaObject = proxy.Invoke(AndroidJNI.GetStringUTFChars(jmethodName), array))
            {
                if (androidJavaObject == null)
                {
                    result = IntPtr.Zero;
                }
                else
                {
                    result = AndroidJNI.NewLocalRef(androidJavaObject.GetRawObject());
                }
            }
            return(result);
        }
All Usage Examples Of UnityEngine.AndroidJavaProxy::Invoke