public static void Init() { AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); if (jc == null) return; AndroidJavaObject joactivety = jc.GetStatic<AndroidJavaObject>("currentActivity"); if (joactivety == null) return; AndroidJavaObject context = joactivety.Call<AndroidJavaObject>("getApplicationContext"); // 初始化HttpDns AndroidJavaObject joDnsClass = new AndroidJavaObject("com.tencent.msdk.dns.MSDKDnsResolver"); Debug.Log(" WGGetHostByName ===========" + joDnsClass); if (joDnsClass == null) return; m_dnsJo = joDnsClass.CallStatic<AndroidJavaObject>("getInstance"); Debug.Log(" WGGetHostByName ===========" + m_dnsJo); if (m_dnsJo == null) return; m_dnsJo.Call("init", context); // 初始化灯塔 AndroidJavaObject joBeaconClass = new AndroidJavaObject("com.tencent.beacon.event.UserAction"); if (joBeaconClass == null) return; m_dnsJo.Call("initUserAction", context); }
public Chat(IntPtr chatPtr, AndroidJavaObject chatJavaObject) { innerChat = chatPtr; innerChatJavaObject = chatJavaObject; if(javaUnityApplicasaChat==null) javaUnityApplicasaChat = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaChat"); }
protected override void ConnectToActivity() { base.ConnectToActivity(); if (cardboardActivity != null) { activityListener = Create("com.google.vr.platform.unity.UnityVrActivityListener"); } }
public static void CallStatic(string className, string methodName, params object[] args) { #if UNITY_ANDROID if(Application.platform != RuntimePlatform.Android) { return; } Debug.Log("AN: Using proxy for class: " + className + " method:" + methodName); try { AndroidJavaObject bridge; if(pool.ContainsKey(className)) { bridge = pool[className]; } else { bridge = new AndroidJavaObject(className); pool.Add(className, bridge); } AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject act = jc.GetStatic<AndroidJavaObject>("currentActivity"); act.Call("runOnUiThread", new AndroidJavaRunnable(() => { bridge.CallStatic(methodName, args); })); } catch(System.Exception ex) { Debug.LogWarning(ex.Message); } #endif }
// Use this for initialization public void ShareImage() { #if UNITY_ANDROID Application.CaptureScreenshot("/Screenshot.png"); string destination = Application.persistentDataPath + "/Screenshot.png"; Debug.Log (destination); // block to open the file and share it ------------START AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse","file://" + destination); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); //intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "testo"); //intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), "SUBJECT"); intentObject.Call<AndroidJavaObject>("setType", "image/jpeg"); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); // option one: currentActivity.Call("startActivity", intentObject); #endif }
public void logEvent(string eventId, Dictionary<string, string> parameters) { using(AndroidJavaObject obj_HashMap = new AndroidJavaObject("java.util.HashMap")) { // Call 'put' via the JNI instead of using helper classes to avoid: // "JNI: Init'd AndroidJavaObject with null ptr!" IntPtr method_Put = AndroidJNIHelper.GetMethodID(obj_HashMap.GetRawClass(), "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); object[] args = new object[2]; foreach(KeyValuePair<string, string> kvp in parameters) { using(AndroidJavaObject k = new AndroidJavaObject("java.lang.String", kvp.Key)) { using(AndroidJavaObject v = new AndroidJavaObject("java.lang.String", kvp.Value)) { args[0] = k; args[1] = v; AndroidJNI.CallObjectMethod(obj_HashMap.GetRawObject(), method_Put, AndroidJNIHelper.CreateJNIArgArray(args)); } } } cls_FlurryAgent.CallStatic("logEvent", eventId, obj_HashMap); } }
static OpenIAB_Android() { if (Application.platform != RuntimePlatform.Android) { STORE_GOOGLE = "STORE_GOOGLE"; STORE_AMAZON = "STORE_AMAZON"; STORE_SAMSUNG = "STORE_SAMSUNG"; STORE_NOKIA = "STORE_NOKIA"; STORE_YANDEX = "STORE_YANDEX"; return; } AndroidJNI.AttachCurrentThread(); // Find the plugin instance using (var pluginClass = new AndroidJavaClass("org.onepf.openiab.UnityPlugin")) { _plugin = pluginClass.CallStatic<AndroidJavaObject>("instance"); STORE_GOOGLE = pluginClass.GetStatic<string>("STORE_GOOGLE"); STORE_AMAZON = pluginClass.GetStatic<string>("STORE_AMAZON"); STORE_SAMSUNG = pluginClass.GetStatic<string>("STORE_SAMSUNG"); STORE_NOKIA = pluginClass.GetStatic<string>("STORE_NOKIA"); STORE_YANDEX = pluginClass.GetStatic<string>("STORE_YANDEX"); } }
public static void Update() { #if UNITY_EDITOR // fake coordinates for the editor Latitude = 34.020189; Longitude = -118.288791; return; #endif var unityPlayer = new AJObject("com.unity3d.player.UnityPlayer"); var activity = unityPlayer.GetStatic <AJObject>("currentActivity"); var manager = activity.Call <AJObject>("getSystemService", "location"); var location = manager.Call <AJObject>("getLastKnownLocation", "gps"); Latitude = location.Call <double>("getLatitude"); Longitude = location.Call <double>("getLongitude"); return; /* * if (history.Count >= 6) history.Dequeue(); * history.Enqueue(new Tuple * { * Latitude = location.Call<double>("getLatitude"), * Longitude = location.Call<double>("getLongitude") * } * ); * UpdateAverages(); */ }
private AndroidJavaObject CreateJavaHashMap(Dictionary<string, string> storeKeys) { var j_HashMap = new AndroidJavaObject("java.util.HashMap"); IntPtr method_Put = AndroidJNIHelper.GetMethodID(j_HashMap.GetRawClass(), "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"); if (storeKeys != null) { object[] args = new object[2]; foreach (KeyValuePair<string, string> kvp in storeKeys) { using (AndroidJavaObject k = new AndroidJavaObject("java.lang.String", kvp.Key)) { using (AndroidJavaObject v = new AndroidJavaObject("java.lang.String", kvp.Value)) { args[0] = k; args[1] = v; AndroidJNI.CallObjectMethod(j_HashMap.GetRawObject(), method_Put, AndroidJNIHelper.CreateJNIArgArray(args)); } } } } return j_HashMap; }
/// <summary> /// <para>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.</para> /// </summary> /// <param name="methodName">Name of the invoked java method.</param> /// <param name="args">Arguments passed from the java vm - converted into AndroidJavaObject, AndroidJavaClass or a primitive.</param> /// <param name="javaArgs">Arguments passed from the java vm - all objects are represented by AndroidJavaObject, int for instance is represented by a java.lang.Integer object.</param> public virtual AndroidJavaObject Invoke(string methodName, AndroidJavaObject[] javaArgs) { object[] args = new object[javaArgs.Length]; for (int index = 0; index < javaArgs.Length; ++index) args[index] = _AndroidJNIHelper.Unbox(javaArgs[index]); return this.Invoke(methodName, args); }
public static bool Connect(string address) { try { var adapter = new AJObject("android.bluetooth.BluetoothAdapter") .CallStatic <AJObject>("getDefaultAdapter"); // force enable bluetooth adapter.Call <bool>("enable"); var device = adapter.Call <AJObject>("getRemoteDevice", address); var uuid = new AJObject("java.util.UUID") .CallStatic <AJObject>("fromString", SPP_UUID); var socket = device.Call <AJObject>( "createInsecureRfcommSocketToServiceRecord", uuid); socket.Call("connect"); // at this point, connection is made, no further action necessary socket.Call("close"); return(true); } catch { return(false); } }
// Initializes the class and bind with the Android platform via JNI. // You must always call this once whenever you needed this technology for // your project. public static void Initialize( int maxStreams ) { #if UNITY_ANDROID && !UNITY_EDITOR m_unityActivityClass = new AndroidJavaClass( "com.unity3d.player.UnityPlayer" ); if( m_unityActivityClass == null ) { DebugUtil.LogError( "AdnAudioBridge: Cannot bind to UnityPlayer class!" ); return; } m_activityContext = m_unityActivityClass.GetStatic< AndroidJavaObject >( "currentActivity" ); if( m_activityContext == null ) { DebugUtil.LogError( "AdnAudioBridge: Cannot find UnityPlayer instance!" ); return; } m_soundObject = new AndroidJavaObject( "net.andreivictor.uqsl.adnaudiobridge.AdnAudioBridge", maxStreams, 128, m_activityContext ); if( m_soundObject == null ) { DebugUtil.LogError( "AdnAudioBridge: Failed to bind with AdnAudioBridge." ); return; } #endif //UNITY_ANDROID && !UNITY_EDITOR }
public void shareText() { //execute the below lines if being run on a Android device #if UNITY_ANDROID body = "Faltan " + RolCountdownController.daysRemaining + " días, " + RolCountdownController.hoursRemaining + " horas y " + RolCountdownController.minutesRemaining + " minutos para las próxima roleada!"; //Refernece of AndroidJavaClass class for intent AndroidJavaClass intentClass = new AndroidJavaClass ("android.content.Intent"); //Refernece of AndroidJavaObject class for intent AndroidJavaObject intentObject = new AndroidJavaObject ("android.content.Intent"); //call setAction method of the Intent object created intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); //set the type of sharing that is happening intentObject.Call<AndroidJavaObject>("setType", "text/plain"); //add data to be passed to the other activity i.e., the data to be sent intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), subject); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), body); //get the current activity AndroidJavaClass unity = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); //start the activity by sending the intent data currentActivity.Call ("startActivity", intentObject); #endif }
// Use this for initialization void Start () { AndroidJavaClass majcUnityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject majoDivePluginInstance = majcUnityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"); metricsClass= new AndroidJavaClass("android.util.DisplayMetrics"); metricsInstance= new AndroidJavaObject("android.util.DisplayMetrics"); windowManagerInstance=majoDivePluginInstance.Call<AndroidJavaObject>("getWindowManager"); displayInstance=windowManagerInstance.Call<AndroidJavaObject>("getDefaultDisplay"); displayInstance.Call("getMetrics",metricsInstance); density=metricsInstance.Get<float>("density"); densitydpi=metricsInstance.Get<int> ("densityDpi"); vpixels=metricsInstance.Get<int>("heightPixels"); vpixels=Screen.height; hpixels=metricsInstance.Get<int>("widthPixels"); //hpixels=displayInstance.Call<int>("getWidth"); hpixels=Screen.width; scaledDensity=metricsInstance.Get<float>("scaledDensity"); xdpi=metricsInstance.Get<float>("xdpi"); ydpi=metricsInstance.Get<float>("ydpi"); xmm=hpixels/xdpi/0.0393701f; ymm=vpixels/ydpi/0.0393701f; hpixels=Screen.width; vpixels=Screen.height; xmm=hpixels/xdpi/0.0393701f; ymm=vpixels/ydpi/0.0393701f; mmdist=xmm/2; }
protected PurchasableVirtualItem(AndroidJavaObject jniVirtualItem) : base(jniVirtualItem) { SoomlaUtils.LogDebug(TAG, "Trying to create PurchasableVirtualItem with itemId: " + jniVirtualItem.Call<string>("getItemId")); using(AndroidJavaObject jniPurchaseType = jniVirtualItem.Call<AndroidJavaObject>("getPurchaseType")) { System.IntPtr cls = AndroidJNI.FindClass("com/soomla/store/purchaseTypes/PurchaseWithMarket"); if (AndroidJNI.IsInstanceOf(jniPurchaseType.GetRawObject(), cls)) { using(AndroidJavaObject jniMarketItem = jniPurchaseType.Call<AndroidJavaObject>("getMarketItem")) { MarketItem mi = new MarketItem(jniMarketItem); PurchaseType = new PurchaseWithMarket(mi); } } else { cls = AndroidJNI.FindClass("com/soomla/store/purchaseTypes/PurchaseWithVirtualItem"); if (AndroidJNI.IsInstanceOf(jniPurchaseType.GetRawObject(), cls)) { string itemId = jniPurchaseType.Call<string>("getTargetItemId"); int amount = jniPurchaseType.Call<int>("getAmount"); PurchaseType = new PurchaseWithVirtualItem(itemId, amount); } else { SoomlaUtils.LogError(TAG, "Couldn't determine what type of class is the given purchaseType."); } } } }
void Awake () { AndroidJavaClass ajc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); this.androidJavaObject = ajc.GetStatic<AndroidJavaObject>("currentActivity"); is_called_startFlag = false; recieve_from_Gear_MSG = ""; manager.is_gameOver = false; }
public Colors(IntPtr colorsPtr, AndroidJavaObject colorsJavaObject) { innerColors = colorsPtr; innerColorsJavaObject = colorsJavaObject; if(javaUnityApplicasaColors==null) javaUnityApplicasaColors = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaColors"); }
void OnGUI() { if (GUI.Button(new Rect(10, 200, 100, 30), "Start")){ loadBytes(); Application.LoadLevel("GameMenu"); } if(GUI.Button(new Rect(10, 300, 100, 30), "Update")){ using (AndroidJavaClass unity_player = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { AndroidJavaObject current_activity = unity_player.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent", current_activity, new AndroidJavaClass("com.unity3d.plugin.downloader.UnityDownloaderActivity")); int Intent_FLAG_ACTIVITY_NO_ANIMATION = 0x10000; intent.Call<AndroidJavaObject>("addFlags", Intent_FLAG_ACTIVITY_NO_ANIMATION); intent.Call<AndroidJavaObject>("putExtra", "name", "Downloading..."); // intent.Call<AndroidJavaObject>("putExtra", "unityplayer.Activity", // current_activity.Call<AndroidJavaObject>("getClass").Call<string>("getName")); current_activity.Call("startActivity", intent); if (AndroidJNI.ExceptionOccurred() != System.IntPtr.Zero) { Debug.LogError("Exception occurred while attempting to start DownloaderActivity - is the AndroidManifest.xml incorrect?"); AndroidJNI.ExceptionDescribe(); AndroidJNI.ExceptionClear(); } } } }
void HideNavigationBar() { lock(this) { using(javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { unityActivity = javaClass.GetStatic<AndroidJavaObject>("currentActivity"); } if(unityActivity == null) { return; } using(javaClass = new AndroidJavaClass("com.rak24.androidimmersivemode.Main")) { if(javaClass == null) { return; } else { javaObj = javaClass.CallStatic<AndroidJavaObject>("instance"); if(javaObj == null) return; unityActivity.Call("runOnUiThread",new AndroidJavaRunnable(() => { javaObj.Call("EnableImmersiveMode", unityActivity); })); } } } }
public static int IsLocked() { try { using (AndroidJavaClass activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) { activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity"); } using ( AndroidJavaClass pluginClass = new AndroidJavaClass("com.dualcorstudios.unityscreenpin.DCSAndroidToolkit")) { if (pluginClass != null) { DCSToolkit = pluginClass.CallStatic<AndroidJavaObject>("instance"); DCSToolkit.Call("setContext", activityContext); return activityContext.Call<int>("runOnUiThread", new AndroidJavaRunnable(() => { DCSToolkit.Call("isLocked"); })); } } } catch (AndroidJavaException e) { Debug.Log(e.Message); Debug.Log(e.StackTrace); } return 1; }
internal static AndroidJavaObject GetObjectMapper() { // it isn't critical that this is protected against multithreaded access. if (objectmapper == null) { objectmapper = new AndroidJavaObject ("com.fasterxml.jackson.databind.ObjectMapper"); } return objectmapper; }
public void Share(string shareText, string imagePath, string url, string subject = "") { #if UNITY_ANDROID AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"); intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND")); AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"); AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + imagePath); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject); intentObject.Call<AndroidJavaObject>("setType", "image/png"); intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), shareText); AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject jChooser = intentClass.CallStatic<AndroidJavaObject>("createChooser", intentObject, subject); currentActivity.Call("startActivity", jChooser); #elif UNITY_IOS CallSocialShareAdvanced(shareText, subject, url, imagePath); #else Debug.Log("No sharing set up for this platform."); #endif }
static BtConnection(){ ajc = null; PluginReady = false; #if !UNITY_EDITOR if (Application.platform == RuntimePlatform.Android) { try { ajc = new AndroidJavaObject(BridgePackage); if (!IsAndroidJavaObjectNull(ajc)) { PluginReady = true; } } catch { Debug.LogError("Bluetooth initialization failed. Probably .jar not present"); } } #endif }
static Density() { Value = 1.0f; #if UNITY_ANDROID using ( AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"), metricsClass = new AndroidJavaClass("android.util.DisplayMetrics") ) { using ( AndroidJavaObject metricsInstance = new AndroidJavaObject("android.util.DisplayMetrics"), activityInstance = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"), windowManagerInstance = activityInstance.Call<AndroidJavaObject>("getWindowManager"), displayInstance = windowManagerInstance.Call<AndroidJavaObject>("getDefaultDisplay") ) { displayInstance.Call ("getMetrics", metricsInstance); Value = metricsInstance.Get<float> ("density"); } } #endif #if UNITY_IPHONE if (Application.platform != RuntimePlatform.OSXEditor) { Value = IOSDensity_ (); } #endif }
// Gets the status code from a Result object public static int GetStatusCode(AndroidJavaObject result) { if (result == null) { return -1; } AndroidJavaObject status = result.Call<AndroidJavaObject>("getStatus"); return status.Call<int>("getStatusCode"); }
public void onCustomTemplateAdLoaded(AndroidJavaObject ad) { CustomNativeEventArgs args = new CustomNativeEventArgs() { nativeAd = new CustomNativeTemplateAd(new CustomNativeTemplateClient(ad)) }; OnCustomNativeTemplateAdLoaded(this, args); }
// Calls a custom Graph API method with the key/value pairs in the Dictionary. Pass in a null dictionary if no parameters are needed. public static void graphRequest( string graphPath, string httpMethod, Dictionary<string,string> parameters ) { if( Application.platform != RuntimePlatform.Android ) return; // load up the Bundle using( var bundle = new AndroidJavaObject( "android.os.Bundle" ) ) { var putStringMethod = AndroidJNI.GetMethodID( bundle.GetRawClass(), "putString", "(Ljava/lang/String;Ljava/lang/String;)V" ); var args = new object[2]; // add all our dictionary elements into the Bundle if( parameters != null ) { foreach( var kv in parameters ) { args[0] = new AndroidJavaObject( "java.lang.String", kv.Key ); args[1] = new AndroidJavaObject( "java.lang.String", kv.Value ); AndroidJNI.CallObjectMethod( bundle.GetRawObject(), putStringMethod, AndroidJNIHelper.CreateJNIArgArray( args ) ); } } // call off to java land _facebookPlugin.Call( "graphRequest", graphPath, httpMethod, bundle ); } }
public Query(IntPtr queryPtr, AndroidJavaObject queryJavaObject) { innerQuery = queryPtr; innerQueryJavaObject = queryJavaObject; if(javaUnityApplicasaQuery==null) javaUnityApplicasaQuery = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaQuery"); }
public GameV(IntPtr gameVPtr, AndroidJavaObject gameVJavaObject) { innerGameV = gameVPtr; innerGameVJavaObject = gameVJavaObject; if(javaUnityApplicasaGameV==null) javaUnityApplicasaGameV = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaGameV"); }
public void start(AdjustConfig adjustConfig) { AndroidJavaObject ajoEnvironment = adjustConfig.environment == AdjustEnvironment.Sandbox ? new AndroidJavaClass ("com.adjust.sdk.AdjustConfig").GetStatic<AndroidJavaObject> ("ENVIRONMENT_SANDBOX") : new AndroidJavaClass ("com.adjust.sdk.AdjustConfig").GetStatic<AndroidJavaObject> ("ENVIRONMENT_PRODUCTION"); AndroidJavaObject ajoAdjustConfig = new AndroidJavaObject ("com.adjust.sdk.AdjustConfig", ajoCurrentActivity, adjustConfig.appToken, ajoEnvironment); if (adjustConfig.logLevel != null) { AndroidJavaObject ajoLogLevel = new AndroidJavaClass ("com.adjust.sdk.LogLevel").GetStatic<AndroidJavaObject> (adjustConfig.logLevel.ToString().ToUpper()); if (ajoLogLevel != null) { ajoAdjustConfig.Call ("setLogLevel", ajoLogLevel); } } if (adjustConfig.attributionChangedDelegate != null) { onAttributionChangedListener = new AttributionChangeListener (adjustConfig.attributionChangedDelegate); ajoAdjustConfig.Call ("setOnAttributionChangedListener", onAttributionChangedListener); } ajoAdjustConfig.Call ("setSdkPrefix", adjustConfig.sdkPrefix); ajcAdjust.CallStatic ("onCreate", ajoAdjustConfig); }
public DataManager(IntPtr dataManagerPtr, AndroidJavaObject dataManagerJavaObject) { innerDataManager = dataManagerPtr; innerDataManagerJavaObject = dataManagerJavaObject; if(javaUnityApplicasaDataManager==null) javaUnityApplicasaDataManager = new AndroidJavaClass("com.applicasaunity.Unity.ApplicasaDataManager"); }
public bool init(string unity_bundle_id, string fb_app_id) { dispose(); fbWrapperObj =new AndroidJavaObject("com.macaronics.fbWrapper", new object[3]{unity_bundle_id, fb_app_id, "fbWrapper"}); return true; }
internal static UnityEngine.AndroidJavaObject GetJavaUserStats() { if (_userStats == null) { _userStats = new UnityEngine.AndroidJavaObject("com.htc.viveport.UserStats"); } return(_userStats); }
internal static UnityEngine.AndroidJavaObject GetDeeplink() { if (_deeplink == null) { _deeplink = new UnityEngine.AndroidJavaObject("com.htc.viveport.Deeplink"); } return(_deeplink); }
internal static UnityEngine.AndroidJavaObject GetJavaAPI() { if (_api == null) { _api = new UnityEngine.AndroidJavaObject("com.htc.viveport.Api"); } return(_api); }
internal static UnityEngine.AndroidJavaObject GetJavaIAPurchase() { if (_iAPurchase == null) { _iAPurchase = new UnityEngine.AndroidJavaObject("com.htc.viveport.IAPurchase"); } return(_iAPurchase); }
internal static UnityEngine.AndroidJavaObject GetJavaSubscription() { if (_subscription == null) { _subscription = new UnityEngine.AndroidJavaObject("com.htc.viveport.Subscription"); } return(_subscription); }
public static string GetAndroidAdMobID() { UnityEngine.AndroidJavaClass up = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer"); UnityEngine.AndroidJavaObject currentActivity = up.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); UnityEngine.AndroidJavaObject contentResolver = currentActivity.Call <UnityEngine.AndroidJavaObject>("getContentResolver"); UnityEngine.AndroidJavaObject secure = new UnityEngine.AndroidJavaObject("android.provider.Settings$Secure"); string deviceID = secure.CallStatic <string>("getString", contentResolver, "android_id"); return(Md5Sum(deviceID).ToUpper()); }
private void Awake() { if (instance != null) { Destroy(this); return; } if (!CriAtomPlugin.IsLibraryInitialized()) { Debug.LogError("[CRIWARE] Atom library is not initialized. Cannot setup CriAtomExOutputDeviceObserver."); Destroy(this); return; } instance = this; #if CRIWAREPLUGIN_SUPPORT_OUTPUTDEVICE_OBSERVER #if !UNITY_EDITOR && UNITY_IOS bool isStarted = UnsafeNativeMethods.criAtomUnity_StartOutputDeviceObserver_IOS(); if (!isStarted) { Debug.LogError("[CRIWARE] CriAtomOutputDeviceObserver cannot start while Atom library is not initialized."); } #elif !UNITY_EDITOR && UNITY_ANDROID UnityEngine.AndroidJavaClass jc = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer"); UnityEngine.AndroidJavaObject activity = jc.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); if (checker == null) { checker = new UnityEngine.AndroidJavaObject("com.crimw.crijavaclasses.CriOutputDeviceObserver", activity, this.gameObject.name, "CallbackFromObserver_ANDROID"); } if (checker == null) { Debug.LogError("[CRIWARE] Cannot load CriOutputDeviceObserver class in library."); } checker.Call("Start", activity); CheckOutputDevice_ANDROID(); #endif isConnected = lastIsConnected = IsDeviceConnected; deviceType = lastDeviceType = DeviceType; if (_onDeviceConnectionChanged != null) { _onDeviceConnectionChanged(isConnected, deviceType); } #elif !UNITY_EDITOR Debug.Log("[CRIWARE] CriAtomOutputDeviceObserver is not supported on this platform."); #endif if (this.dontDestroyOnLoad) { GameObject.DontDestroyOnLoad(this.gameObject); } }
/// <summary> /// 调用方法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="result"></param> /// <param name="jobj"></param> /// <param name="name"></param> /// <param name="args"></param> /// <returns></returns> public bool CallMethod <T>(ref T result, UnityEngine.AndroidJavaObject jobj, string name, params object[] args) { try { result = jobj.Call <T>(name, args); return(true); } catch (AndroidJavaException e) { Debug.LogError("Exception calling activity method " + name + ": " + e); return(false); } }
/// <summary> /// 调用方法 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="result"></param> /// <param name="jobj"></param> /// <param name="name"></param> /// <param name="args"></param> /// <returns></returns> public static bool UPvr_CallMethod(UnityEngine.AndroidJavaObject jobj, string name, params object[] args) { try { jobj.Call(name, args); return(true); } catch (AndroidJavaException e) { Debug.LogError(" Exception calling activity method " + name + ": " + e); return(false); } }
private void CheckOutputDevice_ANDROID() { if (checker == null) { return; } UnityEngine.AndroidJavaClass jc = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer"); UnityEngine.AndroidJavaObject activity = jc.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); int device = checker.Call <int>("CheckOutputDeviceType", activity); deviceType = (OutputDeviceType)device; isConnected = (deviceType != OutputDeviceType.BuiltinSpeaker); }
public static bool IsSupported(int width, int height, float framerate) { #if UNITY_EDITOR return(true); #elif UNITY_IPHONE return(isVideoSupportedFormat(width, height, framerate)); #elif UNITY_ANDROID var jo = new UnityEngine.AndroidJavaObject("asus4.videosupportedplugin.VideoSupportedPlugin"); return(jo.CallStatic <bool>("isVideoSupportedFormat", width, height, framerate)); #else Debug.LogError("Not supported platform"); return(false); #endif }
UnityEngine.AndroidJavaObject GetPluginInstance() { if (activityContext == null) { using (UnityEngine.AndroidJavaClass activityClass = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer")) { activityContext = activityClass.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); } } using (UnityEngine.AndroidJavaClass pluginClass = new UnityEngine.AndroidJavaClass(packageName + "." + className)) { if (unityMusicPluginInstance == null) { unityMusicPluginInstance = pluginClass.CallStatic <UnityEngine.AndroidJavaObject>("instance"); unityMusicPluginInstance.Call("setContext", activityContext); } } return(unityMusicPluginInstance); }
private void OnDestroy() { if (instance != this) { return; } instance = null; #if CRIWAREPLUGIN_SUPPORT_OUTPUTDEVICE_OBSERVER #if !UNITY_EDITOR && UNITY_IOS UnsafeNativeMethods.criAtomUnity_StopOutputDeviceObserver_IOS(); #elif !UNITY_EDITOR && UNITY_ANDROID UnityEngine.AndroidJavaClass jc = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer"); UnityEngine.AndroidJavaObject activity = jc.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); if (activity != null && checker != null) { checker.Call("Stop", activity); } checker = null; #endif #endif }
public static AndroidJavaObject Box(object obj) { if (obj == null) { return(null); } if (AndroidReflection.IsPrimitive(obj.GetType())) { if (obj is int) { return(new AndroidJavaObject("java.lang.Integer", new object[] { (int)obj })); } if (obj is bool) { return(new AndroidJavaObject("java.lang.Boolean", new object[] { (bool)obj })); } if (obj is byte) { return(new AndroidJavaObject("java.lang.Byte", new object[] { (byte)obj })); } if (obj is short) { return(new AndroidJavaObject("java.lang.Short", new object[] { (short)obj })); } if (obj is long) { return(new AndroidJavaObject("java.lang.Long", new object[] { (long)obj })); } if (obj is float) { return(new AndroidJavaObject("java.lang.Float", new object[] { (float)obj })); } if (obj is double) { return(new AndroidJavaObject("java.lang.Double", new object[] { (double)obj })); } if (obj is char) { return(new AndroidJavaObject("java.lang.Character", new object[] { (char)obj })); } throw new Exception("JNI; Unknown argument type '" + obj.GetType() + "'"); } else { if (obj is string) { return(new AndroidJavaObject("java.lang.String", new object[] { (string)obj })); } if (obj is AndroidJavaClass) { return(new AndroidJavaObject(((AndroidJavaClass)obj).GetRawClass())); } if (obj is AndroidJavaObject) { return((AndroidJavaObject)obj); } if (obj is Array) { return(AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(_AndroidJNIHelper.ConvertToJNIArray((Array)obj))); } if (obj is AndroidJavaProxy) { return(AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(AndroidJNIHelper.CreateJavaProxy((AndroidJavaProxy)obj))); } if (obj is AndroidJavaRunnable) { return(AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(AndroidJNIHelper.CreateJavaRunnable((AndroidJavaRunnable)obj))); } throw new Exception("JNI; Unknown argument type '" + obj.GetType() + "'"); } }
protected ReturnType _CallStatic <ReturnType>(string methodName, params object[] args) { if (args == null) { args = new object[1]; } IntPtr methodID = AndroidJNIHelper.GetMethodID <ReturnType>(this.m_jclass, methodName, args, true); jvalue[] array = AndroidJNIHelper.CreateJNIArgArray(args); ReturnType result; try { if (AndroidReflection.IsPrimitive(typeof(ReturnType))) { if (typeof(ReturnType) == typeof(int)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticIntMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(bool)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticBooleanMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(byte)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticByteMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(short)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticShortMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(long)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticLongMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(float)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticFloatMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(double)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticDoubleMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(char)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticCharMethod(this.m_jclass, methodID, array)); } else { result = default(ReturnType); } } else if (typeof(ReturnType) == typeof(string)) { result = (ReturnType)((object)AndroidJNISafe.CallStaticStringMethod(this.m_jclass, methodID, array)); } else if (typeof(ReturnType) == typeof(AndroidJavaClass)) { IntPtr jclass = AndroidJNISafe.CallStaticObjectMethod(this.m_jclass, methodID, array); result = (ReturnType)((object)AndroidJavaObject.AndroidJavaClassDeleteLocalRef(jclass)); } else if (typeof(ReturnType) == typeof(AndroidJavaObject)) { IntPtr jobject = AndroidJNISafe.CallStaticObjectMethod(this.m_jclass, methodID, array); result = (ReturnType)((object)AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(jobject)); } else { if (!AndroidReflection.IsAssignableFrom(typeof(Array), typeof(ReturnType))) { throw new Exception("JNI: Unknown return type '" + typeof(ReturnType) + "'"); } IntPtr array2 = AndroidJNISafe.CallStaticObjectMethod(this.m_jclass, methodID, array); result = (ReturnType)((object)AndroidJNIHelper.ConvertFromJNIArray <ReturnType>(array2)); } } finally { AndroidJNIHelper.DeleteJNIArgArray(args, array); } return(result); }
protected FieldType _GetStatic <FieldType>(string fieldName) { IntPtr fieldID = AndroidJNIHelper.GetFieldID <FieldType>(this.m_jclass, fieldName, true); if (AndroidReflection.IsPrimitive(typeof(FieldType))) { if (typeof(FieldType) == typeof(int)) { return((FieldType)((object)AndroidJNISafe.GetStaticIntField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(bool)) { return((FieldType)((object)AndroidJNISafe.GetStaticBooleanField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(byte)) { return((FieldType)((object)AndroidJNISafe.GetStaticByteField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(short)) { return((FieldType)((object)AndroidJNISafe.GetStaticShortField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(long)) { return((FieldType)((object)AndroidJNISafe.GetStaticLongField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(float)) { return((FieldType)((object)AndroidJNISafe.GetStaticFloatField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(double)) { return((FieldType)((object)AndroidJNISafe.GetStaticDoubleField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(char)) { return((FieldType)((object)AndroidJNISafe.GetStaticCharField(this.m_jclass, fieldID))); } return(default(FieldType)); } else { if (typeof(FieldType) == typeof(string)) { return((FieldType)((object)AndroidJNISafe.GetStaticStringField(this.m_jclass, fieldID))); } if (typeof(FieldType) == typeof(AndroidJavaClass)) { IntPtr staticObjectField = AndroidJNISafe.GetStaticObjectField(this.m_jclass, fieldID); return((FieldType)((object)AndroidJavaObject.AndroidJavaClassDeleteLocalRef(staticObjectField))); } if (typeof(FieldType) == typeof(AndroidJavaObject)) { IntPtr staticObjectField2 = AndroidJNISafe.GetStaticObjectField(this.m_jclass, fieldID); return((FieldType)((object)AndroidJavaObject.AndroidJavaObjectDeleteLocalRef(staticObjectField2))); } if (AndroidReflection.IsAssignableFrom(typeof(Array), typeof(FieldType))) { IntPtr staticObjectField3 = AndroidJNISafe.GetStaticObjectField(this.m_jclass, fieldID); return((FieldType)((object)AndroidJNIHelper.ConvertFromJNIArray <FieldType>(staticObjectField3))); } throw new Exception("JNI: Unknown field type '" + typeof(FieldType) + "'"); } }
public InAppPurchaseResult(AndroidJavaObject result) { this.result = result; }
/// <summary> /// 连接安卓 /// </summary> public void ConnectToAndriod() { try { UnityEngine.AndroidJavaClass unityPlayer = new UnityEngine.AndroidJavaClass("com.unity3d.player.UnityPlayer"); activity = unityPlayer.GetStatic <UnityEngine.AndroidJavaObject>("currentActivity"); javaVrActivityClass = new UnityEngine.AndroidJavaClass("com.picovr.picovrlib.VrActivity"); SetInitActivity(activity.GetRawObject(), javaVrActivityClass.GetRawClass()); canConnecttoActivity = true; CanConnecttoActivity = canConnecttoActivity; PicoVRManager.SDK.inPicovr = true; Headweartype = (int)PicoVRManager.SDK.DeviceType; SetPupillaryPoint(PupillaryPoint); model = javaVrActivityClass.CallStatic <string>("getBuildModel"); Debug.Log("model = " + model); if (model == "Pico Neo DK") { model = "Falcon"; } Debug.Log("SDK Version = " + GetSDKVersion() + ",UnityVersion=" + UnityVersion); Async = GetAsyncFlag(); useHMD = GetSensorExternal(); if (useHMD) { usePhoneSensor = false; } Debug.Log("ConnectToAndroid: useHMD = " + useHMD + ", usePhoneSensor = " + usePhoneSensor); if (model == "Falcon") { usePhoneSensor = false; useHMD = true; isFalcon = true; Debug.Log("ConnectToAndroid: useHMD = " + useHMD + ", usePhoneSensor = " + usePhoneSensor + ", isFalcon = " + isFalcon); Headweartype = (int)PicoVRConfigProfile.DeviceTypes.PicoNeo; Debug.Log("Falcon : " + Headweartype.ToString()); CallStaticMethod(javaVrActivityClass, "initFalconDevice", activity); } else { int deviceType = 0; CallStaticMethod <int>(ref deviceType, javaVrActivityClass, "readDeviceTypeFromWing", activity); Debug.Log("wingDeviceType = " + deviceType); if (deviceType != 0) { Headweartype = deviceType; } } double[] parameters = new double[5]; CallStaticMethod(ref parameters, javaVrActivityClass, "getDPIParameters", activity); ModifyScreenParameters(model, (int)parameters[0], (int)parameters[1], parameters[2], parameters[3], parameters[4]); ChangeHeadwear(Headweartype); SetAsyncModel(Async); Debug.Log("Async:" + Async.ToString() + " Headweartype: " + Headweartype.ToString()); startLarkConnectService(); } catch (AndroidJavaException e) { Debug.LogError("ConnectToAndriod------------------------catch" + e.Message); } }
public static object UnboxArray(AndroidJavaObject obj) { if (obj == null) { return(null); } AndroidJavaClass androidJavaClass = new AndroidJavaClass("java/lang/reflect/Array"); AndroidJavaObject androidJavaObject = obj.Call <AndroidJavaObject>("getClass", new object[0]); AndroidJavaObject androidJavaObject2 = androidJavaObject.Call <AndroidJavaObject>("getComponentType", new object[0]); string text = androidJavaObject2.Call <string>("getName", new object[0]); int num = androidJavaClass.Call <int>("getLength", new object[] { obj }); Array array; if (androidJavaObject2.Call <bool>("IsPrimitive", new object[0])) { if ("I" == text) { array = new int[num]; } else if ("Z" == text) { array = new bool[num]; } else if ("B" == text) { array = new byte[num]; } else if ("S" == text) { array = new short[num]; } else if ("J" == text) { array = new long[num]; } else if ("F" == text) { array = new float[num]; } else if ("D" == text) { array = new double[num]; } else { if (!("C" == text)) { throw new Exception("JNI; Unknown argument type '" + text + "'"); } array = new char[num]; } } else if ("java.lang.String" == text) { array = new string[num]; } else if ("java.lang.Class" == text) { array = new AndroidJavaClass[num]; } else { array = new AndroidJavaObject[num]; } for (int i = 0; i < num; i++) { array.SetValue(_AndroidJNIHelper.Unbox(androidJavaClass.CallStatic <AndroidJavaObject>("get", new object[] { obj, i })), i); } return(array); }
public CustomInAppPurchase(AndroidJavaObject purchase) { this.purchase = purchase; }
public static string GetSignature(object obj) { if (obj == null) { return("Ljava/lang/Object;"); } Type type = (!(obj is Type)) ? obj.GetType() : ((Type)obj); if (AndroidReflection.IsPrimitive(type)) { if (type.Equals(typeof(int))) { return("I"); } if (type.Equals(typeof(bool))) { return("Z"); } if (type.Equals(typeof(byte))) { return("B"); } if (type.Equals(typeof(short))) { return("S"); } if (type.Equals(typeof(long))) { return("J"); } if (type.Equals(typeof(float))) { return("F"); } if (type.Equals(typeof(double))) { return("D"); } if (type.Equals(typeof(char))) { return("C"); } return(string.Empty); } else { if (type.Equals(typeof(string))) { return("Ljava/lang/String;"); } if (obj is AndroidJavaProxy) { AndroidJavaObject androidJavaObject = new AndroidJavaObject(((AndroidJavaProxy)obj).javaInterface.GetRawClass()); return("L" + androidJavaObject.Call <string>("getName", new object[0]) + ";"); } if (type.Equals(typeof(AndroidJavaRunnable))) { return("Ljava/lang/Runnable;"); } if (type.Equals(typeof(AndroidJavaClass))) { return("Ljava/lang/Class;"); } if (type.Equals(typeof(AndroidJavaObject))) { if (obj == type) { return("Ljava/lang/Object;"); } AndroidJavaObject androidJavaObject2 = (AndroidJavaObject)obj; using (AndroidJavaObject androidJavaObject3 = androidJavaObject2.Call <AndroidJavaObject>("getClass", new object[0])) { return("L" + androidJavaObject3.Call <string>("getName", new object[0]) + ";"); } } if (!AndroidReflection.IsAssignableFrom(typeof(Array), type)) { throw new Exception(string.Concat(new object[] { "JNI: Unknown signature for type '", type, "' (obj = ", obj, ") ", (type != obj) ? "instance" : "equal" })); } if (type.GetArrayRank() != 1) { throw new Exception("JNI: System.Array in n dimensions is not allowed"); } StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append('['); stringBuilder.Append(_AndroidJNIHelper.GetSignature(type.GetElementType())); return(stringBuilder.ToString()); } }
public static ArrayType ConvertFromJNIArray <ArrayType>(IntPtr array) { Type elementType = typeof(ArrayType).GetElementType(); if (AndroidReflection.IsPrimitive(elementType)) { if (elementType == typeof(int)) { return((ArrayType)((object)AndroidJNISafe.FromIntArray(array))); } if (elementType == typeof(bool)) { return((ArrayType)((object)AndroidJNISafe.FromBooleanArray(array))); } if (elementType == typeof(byte)) { return((ArrayType)((object)AndroidJNISafe.FromByteArray(array))); } if (elementType == typeof(short)) { return((ArrayType)((object)AndroidJNISafe.FromShortArray(array))); } if (elementType == typeof(long)) { return((ArrayType)((object)AndroidJNISafe.FromLongArray(array))); } if (elementType == typeof(float)) { return((ArrayType)((object)AndroidJNISafe.FromFloatArray(array))); } if (elementType == typeof(double)) { return((ArrayType)((object)AndroidJNISafe.FromDoubleArray(array))); } if (elementType == typeof(char)) { return((ArrayType)((object)AndroidJNISafe.FromCharArray(array))); } return(default(ArrayType)); } else { if (elementType == typeof(string)) { int arrayLength = AndroidJNISafe.GetArrayLength(array); string[] array2 = new string[arrayLength]; for (int i = 0; i < arrayLength; i++) { IntPtr objectArrayElement = AndroidJNI.GetObjectArrayElement(array, i); array2[i] = AndroidJNISafe.GetStringUTFChars(objectArrayElement); AndroidJNISafe.DeleteLocalRef(objectArrayElement); } return((ArrayType)((object)array2)); } if (elementType == typeof(AndroidJavaObject)) { int arrayLength2 = AndroidJNISafe.GetArrayLength(array); AndroidJavaObject[] array3 = new AndroidJavaObject[arrayLength2]; for (int j = 0; j < arrayLength2; j++) { IntPtr objectArrayElement2 = AndroidJNI.GetObjectArrayElement(array, j); array3[j] = new AndroidJavaObject(objectArrayElement2); AndroidJNISafe.DeleteLocalRef(objectArrayElement2); } return((ArrayType)((object)array3)); } throw new Exception("JNI: Unknown generic array type '" + elementType + "'"); } }
public static object UnboxArray(AndroidJavaObject obj) { Array array; if (obj == null) { return(null); } AndroidJavaClass class2 = new AndroidJavaClass("java/lang/reflect/Array"); AndroidJavaObject obj3 = obj.Call <AndroidJavaObject>("getClass", new object[0]).Call <AndroidJavaObject>("getComponentType", new object[0]); string str = obj3.Call <string>("getName", new object[0]); object[] args = new object[] { obj }; int num = class2.Call <int>("getLength", args); if (obj3.Call <bool>("IsPrimitive", new object[0])) { if ("I" != str) { if ("Z" != str) { if ("B" != str) { if ("S" != str) { if ("J" != str) { if ("F" != str) { if ("D" != str) { if ("C" != str) { throw new Exception("JNI; Unknown argument type '" + str + "'"); } array = new char[num]; } else { array = new double[num]; } } else { array = new float[num]; } } else { array = new long[num]; } } else { array = new short[num]; } } else { array = new byte[num]; } } else { array = new bool[num]; } } else { array = new int[num]; } } else if ("java.lang.String" == str) { array = new string[num]; } else if ("java.lang.Class" == str) { array = new AndroidJavaClass[num]; } else { array = new AndroidJavaObject[num]; } for (int i = 0; i < num; i++) { object[] objArray2 = new object[] { obj, i }; array.SetValue(Unbox(class2.CallStatic <AndroidJavaObject>("get", objArray2)), i); } return(array); }