UnityEngine.AndroidJNISafe.FromObjectArray C# (CSharp) Method

FromObjectArray() public static method

public static FromObjectArray ( IntPtr array ) : System.IntPtr[]
array System.IntPtr
return System.IntPtr[]
        public static IntPtr[] FromObjectArray(IntPtr array)
        {
            IntPtr[] ptrArray;
            try
            {
                ptrArray = AndroidJNI.FromObjectArray(array);
            }
            finally
            {
                CheckException();
            }
            return ptrArray;
        }

Usage Example

コード例 #1
0
        public static ArrayType ConvertFromJNIArray <ArrayType>(IntPtr array)
        {
            System.Type elementType = typeof(ArrayType).GetElementType();
            if (elementType.IsPrimitive)
            {
                if (elementType == typeof(int))
                {
                    return((ArrayType)AndroidJNISafe.FromIntArray(array));
                }
                if (elementType == typeof(bool))
                {
                    return((ArrayType)AndroidJNISafe.FromBooleanArray(array));
                }
                if (elementType == typeof(byte))
                {
                    return((ArrayType)AndroidJNISafe.FromByteArray(array));
                }
                if (elementType == typeof(short))
                {
                    return((ArrayType)AndroidJNISafe.FromShortArray(array));
                }
                if (elementType == typeof(long))
                {
                    return((ArrayType)AndroidJNISafe.FromLongArray(array));
                }
                if (elementType == typeof(float))
                {
                    return((ArrayType)AndroidJNISafe.FromFloatArray(array));
                }
                if (elementType == typeof(double))
                {
                    return((ArrayType)AndroidJNISafe.FromDoubleArray(array));
                }
                if (elementType != typeof(char))
                {
                    return(default(ArrayType));
                }
                return((ArrayType)AndroidJNISafe.FromCharArray(array));
            }
            if (elementType == typeof(string))
            {
                IntPtr[] ptrArray = AndroidJNISafe.FromObjectArray(array);
                int      num      = ptrArray.GetLength(0);
                string[] strArray = new string[num];
                for (int j = 0; j < num; j++)
                {
                    strArray[j] = AndroidJNISafe.GetStringUTFChars(ptrArray[j]);
                }
                return((ArrayType)strArray);
            }
            if (elementType != typeof(AndroidJavaObject))
            {
                throw new Exception("JNI: Unknown generic array type '" + elementType + "'");
            }
            IntPtr[] ptrArray2 = AndroidJNISafe.FromObjectArray(array);
            int      length    = ptrArray2.GetLength(0);

            AndroidJavaObject[] objArray = new AndroidJavaObject[length];
            for (int i = 0; i < length; i++)
            {
                objArray[i] = new AndroidJavaObject(ptrArray2[i]);
            }
            return((ArrayType)objArray);
        }
All Usage Examples Of UnityEngine.AndroidJNISafe::FromObjectArray
AndroidJNISafe