Ejemplo n.º 1
0
        public static T StaticInvokeCall <T>(string type, string name, string sig, params object[] args)
        {
            Type   type1          = typeof(T);
            IntPtr num            = AndroidJNI.FindClass(type);
            IntPtr staticMethodId = AndroidJNI.GetStaticMethodID(num, name, sig);

            jvalue[] jvalueArray = JavaObjWrapper.ConstructArgArray(args);
            if ((object)type1 == (object)typeof(bool))
            {
                return((T)(ValueType)AndroidJNI.CallStaticBooleanMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(string))
            {
                return((T)AndroidJNI.CallStaticStringMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(int))
            {
                return((T)(ValueType)AndroidJNI.CallStaticIntMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(float))
            {
                return((T)(ValueType)AndroidJNI.CallStaticFloatMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(double))
            {
                return((T)(ValueType)AndroidJNI.CallStaticDoubleMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(byte))
            {
                return((T)(ValueType)AndroidJNI.CallStaticByteMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(char))
            {
                return((T)(ValueType)AndroidJNI.CallStaticCharMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(long))
            {
                return((T)(ValueType)AndroidJNI.CallStaticLongMethod(num, staticMethodId, jvalueArray));
            }
            if ((object)type1 == (object)typeof(short))
            {
                return((T)(ValueType)AndroidJNI.CallStaticShortMethod(num, staticMethodId, jvalueArray));
            }
            return(JavaObjWrapper.StaticInvokeObjectCall <T>(type, name, sig, args));
        }