public static int XDeviceExit() { int ret = 0; if (s_XDeviceApi != null) { ret = s_XDeviceApi.CallStatic <int>("exit"); s_XDeviceApi.Dispose(); s_XDeviceApi = null; } return(ret); }
/// <summary> /// JNI 调用静态方法 /// </summary> /// <param name="className">类路径名</param> /// <param name="methodName">方法名</param> /// <param name="methodParams">方法参数</param> public static void CallStaticMethod(string className, string methodName, params object[] methodParams) { #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass clazz = null; using (clazz = new AndroidJavaClass(className)) { clazz.CallStatic(methodName, methodParams); } clazz.Dispose(); clazz = null; #endif }
public void ButtonClickEvent(InputField playerinputName) { var javaClassObject = new AndroidJavaClass(JavaClassName); const int duration = 1; string text = playerinputName.text + "! Good Game!"; var context = GetUnityActivity(); var javaToastObject = javaClassObject.CallStatic <AndroidJavaObject>("makeText", context, text, duration); Debug.Log("Rip And Tear"); javaToastObject.Call("show"); javaClassObject.Dispose(); sceneSwitch.StartGame(); }
public T FindObject_CallMethod <T>(string className, string fieldName, bool isFieldStatic, string methodName, object[] methodParams) { #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass clazz = new AndroidJavaClass(className); AndroidJavaObject obj = isFieldStatic ? clazz.GetStatic <AndroidJavaObject>(fieldName) : clazz.Get <AndroidJavaObject>(fieldName); T result = IsAvailable(methodParams) ? obj.Call <T>(methodName, methodParams) : obj.Call <T>(methodName); obj.Dispose(); clazz.Dispose(); return(result); #else return(default(T)); #endif }
public void CustomLog(string str) { try { AndroidJavaClass class2 = new AndroidJavaClass(ApolloConfig.GetGameUtilityString()); object[] args = new object[] { DateTime.Now.ToString("yyyyMMdd_HHmmss ") + str }; class2.CallStatic("dtLog", args); class2.Dispose(); } catch (Exception) { } }
public void ShowAndDispose() { AndroidJavaObject context = AndroidHelper.GetCurrentActivity().Call <AndroidJavaObject>("getApplicationContext"); AndroidJavaObject toastClass = new AndroidJavaClass("android.widget.Toast"); AndroidJavaObject toastObject = toastClass.CallStatic <AndroidJavaObject>("makeText", context, m_Message, (int)m_Duration); toastObject.Call("show"); toastClass.Dispose(); toastObject.Dispose(); context.Dispose(); }
public void Dispose() { #if !UNITY_EDITOR if (currentActivity != null && maxstARClass != null) { maxstARClass.CallStatic("deinit"); currentActivity.Dispose(); currentActivity = null; maxstARClass.Dispose(); maxstARClass = null; } #endif }
public static T CallAndroidStaticMethod <T>(string className, string methodName, params object[] methodParams) { T ret = default(T); #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass androidJavaClass = null; using (androidJavaClass = new AndroidJavaClass(className)) { ret = androidJavaClass.CallStatic <T>(methodName, methodParams); } androidJavaClass.Dispose(); #endif return(ret); }
/** * Callback invoked when the application is closed. */ void OnApplicationQuit() { // Destruction of previously created objects. if (androidSensorsClass != null) { androidSensorsClass.Dispose(); } if (activityClass != null) { activityClass.Dispose(); } Close(); }
/// <summary> /// JNI 获取静态属性值 /// </summary> /// <param name="className">类路径</param> /// <param name="filedName">静态属性名</param> public static T GetStaticField <T>(string className, string fieldName) { T res = default(T); #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass clazz = null; using (clazz = new AndroidJavaClass(className)) { res = clazz.GetStatic <T>(fieldName); } clazz.Dispose(); clazz = null; #endif return(res); }
public void Init() { if (Application.platform == RuntimePlatform.Android) { AndroidJavaClass javaUnityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = javaUnityPlayer.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaClass javaClass = new AndroidJavaClass("com.maxst.ar.WearableDeviceController"); javaObject = javaClass.CallStatic <AndroidJavaObject>("createDeviceController", currentActivity); currentActivity.Dispose(); javaUnityPlayer.Dispose(); javaClass.Dispose(); } }
/// <summary> /// Lancia un'altra app installata sul dispositivo. /// </summary> /// <param name="PackageName">Il nome del pacchetto (es. biz.replay.kikilauncher)</param> public static void LaunchApp(string PackageName) { if (!isEditor) { AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject currentActivity = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject androidPackageManager = currentActivity.Call <AndroidJavaObject>("getPackageManager"); AndroidJavaObject launchIntent = androidPackageManager.Call <AndroidJavaObject>("getLaunchIntentForPackage", PackageName); currentActivity.Call("startActivity", launchIntent); unityPlayer.Dispose(); currentActivity.Dispose(); androidPackageManager.Dispose(); launchIntent.Dispose(); } }
public void CustomLog(string str) { try { AndroidJavaClass androidJavaClass = new AndroidJavaClass(ApolloConfig.GetGameUtilityString()); androidJavaClass.CallStatic("dtLog", new object[] { DateTime.get_Now().ToString("yyyyMMdd_HHmmss ") + str }); androidJavaClass.Dispose(); } catch (Exception) { } }
void Destroy() { if (unityPlayerClass != null) { unityPlayerClass.Dispose(); } if (currentActivity != null) { currentActivity.Dispose(); } if (iapRequestAdapter != null) { iapRequestAdapter.Dispose(); } }
/// <summary> /// Checks if application is available on mobile device /// </summary> /// <param name="applicationBundleID">Application BundleID (in platforms application store)</param> public static bool IsApplicationInstalled(string applicationBundleID) { //#if UNITY_EDITOR // return false; //#elif UNITY_ANDROID #if UNITY_ANDROID AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = up.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject packageManager = ca.Call <AndroidJavaObject>("getPackageManager"); Debug.Log("Checking for app availability on system."); AndroidJavaObject launchIntent = null; //if the app is installed, no errors. Else, doesn't get past next line try { launchIntent = packageManager.Call <AndroidJavaObject>("getLaunchIntentForPackage", applicationBundleID); } catch (Exception ex) { Debug.Log(string.Format("Error checking app availability: {0}", ex.Message)); } bool result = (launchIntent != null); up.Dispose(); ca.Dispose(); packageManager.Dispose(); launchIntent.Dispose(); Debug.Log(string.Format("Application {0} found: {0}", applicationBundleID, result)); return(result); #elif UNITY_IOS bool result = false; if (ApplicationSchemesMap.ContainsKey(applicationBundleID)) { Debug.Log(string.Format("Direct app request iOS: {0}", iOSApplicationAvailable(ApplicationSchemesMap[applicationBundleID]))); result = iOSApplicationAvailable(ApplicationSchemesMap[applicationBundleID]); } else { result = false; } Debug.Log(string.Format("Application {0} found: {0}", applicationBundleID, result)); return(result); #else return(false); #endif }
int _Init(){ AndroidJavaClass _androidJC = new AndroidJavaClass ("com.unity3d.player.UnityPlayer"); if(_androidJC != null){ _AndroidPluginObj = _androidJC.GetStatic<AndroidJavaObject> ("currentActivity"); _androidJC.Dispose (); if(_AndroidPluginObj == null){ return -1; } return 0; } return -1; }
void RpcEnteredNumbersChanged(int[] numbers) { if (Application.platform == RuntimePlatform.Android) { AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = unity.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject sysService = ca.Call <AndroidJavaObject>("getSystemService", "vibrator"); sysService.Call("vibrate", 15L); unity.Dispose(); ca.Dispose(); sysService.Dispose(); } clientController.EnteredNumbers = new List <int>(numbers); }
static public void Vibrate(float inSeconds) { #if UNITY_ANDROID AndroidJavaClass context = new AndroidJavaClass("android.content.Context"); string serviceKey = context.GetStatic <string>("VIBRATOR_SERVICE"); context.Dispose(); AndroidJavaObject service = AndroidHelper.GetCurrentActivity().Call <AndroidJavaObject>("getSystemService", serviceKey); bool bHasVibrator = service.Call <bool>("hasVibrator"); if (bHasVibrator) { service.Call("vibrate", (long)(inSeconds * 1000)); } service.Dispose(); #endif }
public static ReturnType CallStaticMethod <ReturnType>(string className, string methodName, params object[] parameters) { #if UNITY_ANDROID && !UNITY_EDITOR try { AndroidJavaClass jc = new AndroidJavaClass(className); ReturnType result = jc.CallStatic <ReturnType>(methodName, parameters); jc.Dispose(); return(result); } catch (Exception e) { Debug.LogException(e); } #endif return(default(ReturnType)); }
private int Initiate() { this._appid = "OA00649101"; AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); if (androidJavaClass == null) { return(-1); } this.AndroidPlugin = androidJavaClass.GetStatic <AndroidJavaObject>("currentActivity"); androidJavaClass.Dispose(); if (this.AndroidPlugin == null) { return(-1); } return(0); }
void androidVibrate(int timeInMiliSec) { if (Application.platform != RuntimePlatform.Android) { return; } AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = unity.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaClass vibratorClass = new AndroidJavaClass("android.os.Vibrator"); AndroidJavaObject vibratorService = ca.Call <AndroidJavaObject>("getSystemService", "vibrator"); vibratorService.Call("vibrate", (long)timeInMiliSec); unity.Dispose(); ca.Dispose(); vibratorClass.Dispose(); vibratorService.Dispose(); }
public static int PhoneCount() { if (IsLoadDualSim) { return(SimCount); } #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityClass.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaClass deviceUtils = new AndroidJavaClass("deviceutils.sboy.com.androiddeviceutils.DeviceUtils"); SimCount = deviceUtils.CallStatic <int>("GetPhoneCount", activity); deviceUtils.Dispose(); activity.Dispose(); unityClass.Dispose(); IsLoadDualSim = true; #endif return(SimCount); }
public static string GetNetworkOperatorName_SIM() { if (!string.IsNullOrEmpty(_NetworkOperatorName_SIM1)) { return(_NetworkOperatorName_SIM1); } #if UNITY_ANDROID && !UNITY_EDITOR AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityClass.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaClass deviceUtils = new AndroidJavaClass("deviceutils.sboy.com.androiddeviceutils.DeviceUtils"); _NetworkOperatorName_SIM1 = deviceUtils.CallStatic <string>("GetNetworkOperatorName", activity); deviceUtils.Dispose(); activity.Dispose(); unityClass.Dispose(); #endif return(_NetworkOperatorName_SIM1); }
public void SetGender(Gender type) { if (Application.platform != RuntimePlatform.OSXEditor && Application.platform != RuntimePlatform.WindowsEditor) { #if UNITY_ANDROID if (mProfile != null) { AndroidJavaClass enumClass = new AndroidJavaClass("com.tendcloud.tenddata.TDGAProfile$Gender"); AndroidJavaObject obj = enumClass.CallStatic <AndroidJavaObject>("valueOf", type.ToString()); mProfile.Call("setGender", obj); enumClass.Dispose(); } #endif #if UNITY_IPHONE TDGASetGender((int)type); #endif } }
/// <summary> /// Constructor. /// </summary> public GoogleDrive() { #if !UNITY_EDITOR && UNITY_ANDROID pluginClass = new AndroidJavaClass("com.studio272.googledriveplugin.GoogleDrivePlugin"); // Set Unity activity. { AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject unityActivity = unityPlayerClass.GetStatic <AndroidJavaObject>("currentActivity"); pluginClass.CallStatic("setUnityActivity", new object[] { unityActivity }); unityActivity.Dispose(); unityPlayerClass.Dispose(); } #elif !UNITY_EDITOR && UNITY_IPHONE #endif }
/** * ============================================= Initializers ===================================================== */ /** * <summary>Initializer of handlers that ensure effectiveness of Android/Unity integration/communication.</summary> */ private void Init() { // Attach current thread to a Java virtual machine. AndroidJNI.AttachCurrentThread(); // Creation of an instance of the Android-Java connection class. activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); // Establishing the context of the Android activity. activityContext = activityClass.GetStatic <AndroidJavaObject>("currentActivity"); // Definition of the interface between Unity and Android, i.e., an instance to the PLUXApiPlugin // class. AndroidJavaClass pluginClass = new AndroidJavaClass("info.plux.api.PLUXApiPlugin"); // Initializing device. InitDevice(); // Check if an instance of the pluginClass was previously created. if (pluginClass != null) { androidSensorsClass = pluginClass.CallStatic <AndroidJavaObject> ("getInstance"); // Start Unity/Android communication through sequential calls. if (androidSensorsClass != null) { androidSensorsClass.Call("setContext", activityContext); androidSensorsClass.Call("setGameObjectName", this.gameObject.name); androidSensorsClass.Call("restart"); androidSensorsClass.Call("init"); } } // Object destruction. if (activityClass != null) { activityClass.Dispose(); } if (activityContext != null) { activityContext.Dispose(); } }
// Unity by default doesn't do this, so we're gonna do it ourselves void Vibrate(float duration) { // This will only work on Android if (Application.platform != RuntimePlatform.Android) { return; } AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = unity.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaClass vibratorClass = new AndroidJavaClass("android.os.Vibrator"); AndroidJavaObject vibratorService = ca.Call <AndroidJavaObject>("getSystemService", "vibrator"); vibratorService.Call("vibrate", (long)(duration * 1000)); unity.Dispose(); ca.Dispose(); vibratorClass.Dispose(); vibratorService.Dispose(); }
public void Dispose() { if (Application.isEditor) { return; } activityCls.Dispose(); activityInst.Dispose(); foreach (KeyValuePair <string, AndroidJavaClass> pair in classes) { pair.Value.Dispose(); } classes.Clear(); foreach (KeyValuePair <string, AndroidJavaObject> pair in objects) { pair.Value.Dispose(); } objects.Clear(); }
public void OpenMapOnClick() { if (string.IsNullOrEmpty(addressURL.text) || !addressURL.text.StartsWith("http")) { return; } bool fail = false; AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = up.GetStatic <AndroidJavaObject>("currentActivity"); AndroidJavaObject packageManager = ca.Call <AndroidJavaObject>("getPackageManager"); AndroidJavaObject launchIntent = null; try { launchIntent = packageManager.Call <AndroidJavaObject>("getLaunchIntentForPackage", "com.google.android.apps.maps"); } catch (Exception e) { Console.WriteLine(e.StackTrace); fail = true; } if (fail) { //open app in store Application.OpenURL("https://google.com"); } else { //open the app //Application.OpenURL("https://goo.gl/maps/sL2Tug3N5oytfJvR7"); if (!string.IsNullOrEmpty(addressURL.text)) { Application.OpenURL(addressURL.text); } } up.Dispose(); ca.Dispose(); packageManager.Dispose(); launchIntent.Dispose(); }
public void callUrlScheme(string appScheme, string appID) { Guid myGUID = Guid.NewGuid(); randomMessage = myGUID.ToString(); //generate random msg for the apps to sign and verify address bool fail = false; #if UNITY_IPHONE Application.OpenURL(appScheme + "://x-callback-url/getaddress?msg=" + randomMessage + "&x-success=" + urlscheme); #endif #if UNITY_ANDROID AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = up.GetStatic <AndroidJavaObject> ("currentActivity"); AndroidJavaObject packageManager = ca.Call <AndroidJavaObject> ("getPackageManager"); AndroidJavaObject launchIntent = null; launchIntent = packageManager.Call <AndroidJavaObject> ("getLaunchIntentForPackage", appID); try { Debug.Log("launching intent"); launchIntent.Call <AndroidJavaObject> ("putExtra", "source", "x-callback-url/getaddress?x-success=" + urlscheme + "&msg=" + randomMessage); Debug.Log(launchIntent.ToString()); } catch (System.Exception e) { fail = true; } if (fail) { Debug.Log("app not found"); } else { Debug.Log("Launch activity"); ca.Call("startActivity", launchIntent); } up.Dispose(); ca.Dispose(); packageManager.Dispose(); launchIntent.Dispose(); #endif }