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);
            }
Example #2
0
    /// <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();
    }
Example #4
0
        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
        }
Example #5
0
 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)
     {
     }
 }
Example #6
0
        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();
        }
Example #7
0
        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();
    }
Example #10
0
    /// <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);
    }
Example #11
0
        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();
            }
        }
Example #12
0
 /// <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)
     {
     }
 }
Example #14
0
 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
        }
Example #16
0
	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);
    }
Example #18
0
    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));
    }
Example #20
0
    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);
    }
Example #21
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();
    }
Example #22
0
 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);
 }
Example #23
0
    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);
    }
Example #24
0
    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();
        }
    }
Example #27
0
    // 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();
    }
Example #28
0
 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();
 }
Example #29
0
    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
    }