public static DataManString[] GetArrayWithQuerySync(Query query, QueryKind queryKind)
        {
            if (javaUnityApplicasaDataManString == null)
            {
                javaUnityApplicasaDataManString = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManString");
            }

            AndroidJavaObject[] bigArray = javaUnityApplicasaDataManString.CallStatic <AndroidJavaObject[]>("ApplicasaDataManStringGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind);

            DataManString[] dataManStringInner = null;
            for (int i = 0; i < bigArray.Length; i++)
            {
                AndroidJavaObject tempJavaObject = bigArray[i];

                AndroidJavaObject[] InnerArray        = AndroidJNIHelper.ConvertFromJNIArray <AndroidJavaObject[]>(tempJavaObject.GetRawObject());
                DataManString[]     dataManStringtemp = new DataManString[InnerArray.Length];
                for (int j = 0; j < InnerArray.Length; j++)
                {
                    AndroidJavaObject tempObj = InnerArray[j];
                    dataManStringtemp[j] = new DataManString(tempObj.GetRawObject(), tempObj);
                }
                if (dataManStringInner == null)
                {
                    dataManStringInner = dataManStringtemp;
                }
                else
                {
                    DataManString[] firstOne = dataManStringInner;
                    dataManStringInner = new DataManString[firstOne.Length + dataManStringtemp.Length];
                    firstOne.CopyTo(dataManStringInner, 0);
                    dataManStringtemp.CopyTo(dataManStringInner, firstOne.Length);
                }
            }
            return(dataManStringInner);
        }
        public static IEnumerator GetArrayWithQuerySyncIEnumerator(Query query, QueryKind queryKind)
        {
            if(javaUnityApplicasaDataManString==null)
                javaUnityApplicasaDataManString = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManString");

                AndroidJavaObject[] bigArray = javaUnityApplicasaDataManString.CallStatic<AndroidJavaObject[]>("ApplicasaDataManStringGetArrayWithQuerySync", query.innerQueryJavaObject, (int)queryKind);

            DataManString[] dataManStringInner= null;;
            for (int i = 0;i < bigArray.Length;i++)
            {
                AndroidJavaObject tempJavaObject = bigArray[i];

                AndroidJavaObject[] InnerArray = AndroidJNIHelper.ConvertFromJNIArray<AndroidJavaObject[]>(tempJavaObject.GetRawObject());
                DataManString[] dataManStringtemp = new DataManString[InnerArray.Length];
                for (int j = 0;j < InnerArray.Length;j++)
                {
                    AndroidJavaObject tempObj = InnerArray[j];
                    dataManStringtemp[j] = new DataManString(tempObj.GetRawObject(),tempObj);
                }
                if (dataManStringInner == null)
                    dataManStringInner = dataManStringtemp;
                else{
                   DataManString[] firstOne = dataManStringInner;
                    dataManStringInner = new DataManString[firstOne.Length+dataManStringtemp.Length];
                    firstOne.CopyTo(dataManStringInner,0);
                    dataManStringtemp.CopyTo(dataManStringInner,firstOne.Length);
                }
                yield return new WaitForSeconds(0.2f);
            }
            finalDataManString = dataManStringInner;
        }