예제 #1
0
    public void ShareAndroid()
    {
        Debug.Log("ShareAndroid");
#if UNITY_ANDROID && !UNITY_EDITOR
        using (AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"))
            using (AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent")) {
                Debug.Log("ShareAndroid 1");
                intentObject.Call <AndroidJavaObject>("setAction", intentObject.GetStatic <string>("ACTION_SEND"));
                intentObject.Call <AndroidJavaObject>("setType", "text/plain");
                intentObject.Call <AndroidJavaObject>("putExtra", intentObject.GetStatic <string>("EXTRA_SUBJECT"), subject);
                intentObject.Call <AndroidJavaObject>("putExtra", intentObject.GetStatic <string>("EXTRA_TITLE"), title);
                intentObject.Call <AndroidJavaObject>("putExtra", intentObject.GetStatic <string>("EXTRA_TEXT"), body);
                Debug.Log("ShareAndroid 2");
                using (AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
                    using (AndroidJavaObject currentActivity = unity.GetStatic <AndroidJavaObject>("currentActivity")) {
                        using (AndroidJavaObject jChooser = intentClass.CallStatic <AndroidJavaObject>("createChooser", intentObject, "Share Via")) {
                            Debug.Log("ShareAndroid 3");
                            currentActivity.Call("startActivity", jChooser);
                        }
                    }
                }
            }
#endif
        Debug.Log("ShareAndroid 4");
    }
예제 #2
0
    public void StartGeoFence()
    {
        try
        {
            jcu                 = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            jou                 = jcu.GetStatic <AndroidJavaObject>("currentActivity");
            mGeoFenceClient     = new AndroidJavaObject("com.amap.api.fence.GeoFenceClient", jou);
            centerPoint         = new AndroidJavaObject("com.amap.api.location.DPoint");
            geofence            = new AndroidJavaObject("com.amap.api.fence.GeoFence");
            Intent              = new AndroidJavaClass("android.content.Intent");
            Bundle              = new AndroidJavaClass("android.os.Bundle");
            ConnectivityManager = new AndroidJavaClass("android.net.ConnectivityManager");
            geofenceLis         = new GFListener();
            geofenceLis.GeoFenceCreateFinished += onGeoFenceCreateFinished;
            mGeoFenceClient.Call("setGeoFenceListener", geofenceLis);
            mGeoFenceClient.Call("setActivateAction", mGeoFenceClient.GetStatic <int>("GEOFENCE_IN") | mGeoFenceClient.GetStatic <int>("GEOFENCE_OUT") | mGeoFenceClient.GetStatic <int>("GEOFENCE_STAYED"));

            centerPoint.Call("setLatitude", 25.962D);
            centerPoint.Call("setLongitude", 115.405D);

            mGeoFenceClient.Call("addGeoFence", "丽景家园", "住宅", centerPoint, 1000F, 10, "打卡");
            mGeoFenceClient.Call <AndroidJavaObject>("createPendingIntent", GEOFENCE_BROADCAST_ACTION);

            BroadcastReceiver = new AndroidJavaObject("com.unity3d.player.UABroadcastReceiver");
            filter            = new AndroidJavaObject("android.content.IntentFilter", ConnectivityManager.GetStatic <string>("CONNECTIVITY_ACTION"));
            filter.Call("addAction", GEOFENCE_BROADCAST_ACTION);
            jou.Call <AndroidJavaObject>("registerReceiver", BroadcastReceiver, filter);
            unlockBroadcast = new UnityBroadcastProxy();
            BroadcastReceiver.CallStatic("setReceiver", unlockBroadcast);
        }
        catch (Exception ex)
        {
            tvReult.text = ex.Message;
        }
    }
예제 #3
0
    //打开Android中指定的Activity
    public static string androidToActivity(string actionKey, string url)
    {
        string            errMessage = "";
        string            globalName;
        AndroidJavaObject Uriobj;

        using (AndroidJavaObject jc1 = new AndroidJavaObject("android.content.Intent")) {
            globalName = jc1.GetStatic <string>(actionKey);
        }
        using (AndroidJavaObject jc2 = new AndroidJavaObject("android.net.Uri")) {
            Uriobj = jc2.CallStatic <AndroidJavaObject>("parse", url);
        }

        try
        {
            using (AndroidJavaObject jc3 = new AndroidJavaObject("android.content.Intent", globalName, Uriobj)) {
                using (AndroidJavaClass jc4 = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
                    AndroidJavaObject currentActivity = jc4.GetStatic <AndroidJavaObject>("currentActivity");

                    currentActivity.Call("startActivity", jc3);
                }
            }
        }
        catch (System.Exception e)
        {
            errMessage = e.Message;
        }

        return(errMessage);
    }
예제 #4
0
    //获取本地app列表
    public static List <string> GetAllApk()
    {
        List <string> apks = new List <string>();

#if UNITY_ANDROID
        try
        {
            AndroidJavaClass    up = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject   currentActivity = up.GetStatic <AndroidJavaObject>("currentActivity");
            AndroidJavaObject   packageManager  = currentActivity.Call <AndroidJavaObject>("getPackageManager");
            AndroidJavaObject   packageInfos    = packageManager.Call <AndroidJavaObject>("getInstalledPackages", 0);
            AndroidJavaObject[] packages        = packageInfos.Call <AndroidJavaObject[]>("toArray");
            for (int i = 0; i < packages.Length; i++)
            {
                AndroidJavaObject applicationInfo = packages[i].Get <AndroidJavaObject>("applicationInfo");
                if ((applicationInfo.Get <int>("flags") & applicationInfo.GetStatic <int>("FLAG_SYSTEM")) == 0)// 判断是不是系统应用
                {
                    string            packageName      = applicationInfo.Get <string>("packageName");
                    AndroidJavaObject applicationLabel = packageManager.Call <AndroidJavaObject>("getApplicationLabel", applicationInfo);
                    string            packageLable     = applicationLabel.Call <string>("toString");
                    apks.Add(packageLable + "|" + packageName);
                }
            }
        }
        catch (System.Exception e)
        {
            Debug.LogWarning(e);
        }
#endif
        return(apks);
    }
예제 #5
0
        AndroidJavaObject GetTelephonyManager()
        {
            AndroidJavaClass  unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject activity    = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");

            if (activity == null)
            {
                Debug.Log("Can't find an activity!");
                return(null);
            }

            AndroidJavaObject context = activity.Call <AndroidJavaObject>("getApplicationContext");

            if (context == null)
            {
                Debug.Log("Can't find an app context!");
                return(null);
            }

            // Context.TELEPHONY_SERVICE:
            string            CONTEXT_TELEPHONY_SERVICE = context.GetStatic <String>("TELEPHONY_SERVICE");
            AndroidJavaObject telManager = context.Call <AndroidJavaObject>("getSystemService", CONTEXT_TELEPHONY_SERVICE);

            return(telManager);
        }
예제 #6
0
    public static void Initialize()
    {
        unityPlayer     = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        currentActivity = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");

        vibrator = currentActivity.Call <AndroidJavaObject>("getSystemService", "vibrator");
    }
예제 #7
0
    /// <summary>
    /// Verify the signature is correct
    /// </summary>
    /// <returns></returns>
    public static bool IsCorrect()
    {
#if UNITY_EDITOR
        return(true);
#endif

        // 获取Android的PackageManager
        AndroidJavaClass  Player         = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject Activity       = Player.GetStatic <AndroidJavaObject>("currentActivity");
        AndroidJavaObject PackageManager = Activity.Call <AndroidJavaObject>("getPackageManager");

        // 获取当前Android应用的包名
        string packageName = Activity.Call <string>("getPackageName");

        // 调用PackageManager的getPackageInfo方法来获取签名信息数组
        int GET_SIGNATURES = PackageManager.GetStatic <int>("GET_SIGNATURES");
        AndroidJavaObject   PackageInfo = PackageManager.Call <AndroidJavaObject>("getPackageInfo", packageName, GET_SIGNATURES);
        AndroidJavaObject[] Signatures  = PackageInfo.Get <AndroidJavaObject[]>("signatures");

        // 获取当前的签名的哈希值,判断其与我们签名的哈希值是否一致
        if (Signatures != null && Signatures.Length > 0)
        {
            int hashCode = Signatures[0].Call <int>("hashCode");
            return(hashCode == 8888888888);//我们签名的哈希值
        }
        return(false);
    }
        /// <summary>
        /// 获取安卓包的签名信息
        /// </summary>
        /// <returns></returns>
        public String GetSignatureMd5()
        {
            try {
                // 获取Android的PackageManager
                AndroidJavaClass  Player         = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
                AndroidJavaObject Activity       = Player.GetStatic <AndroidJavaObject>("currentActivity");
                AndroidJavaObject PackageManager = Activity.Call <AndroidJavaObject>("getPackageManager");

                // 获取当前Android应用的包名
                string packageName = Activity.Call <string>("getPackageName");

                // 调用PackageManager的getPackageInfo方法来获取签名信息数组
                int GET_SIGNATURES = PackageManager.GetStatic <int>("GET_SIGNATURES");
                AndroidJavaObject   PackageInfo = PackageManager.Call <AndroidJavaObject>("getPackageInfo", packageName, GET_SIGNATURES);
                AndroidJavaObject[] Signatures  = PackageInfo.Get <AndroidJavaObject[]>("signatures");

                // 获取当前的签名的哈希值,判断其与我们签名的哈希值是否一致
                if (Signatures != null && Signatures.Length > 0)
                {
                    string ret = Signatures[0].Call <string>("toCharsString");
                    ret = MD5Util.GetMD5(ret);
                    return(ret);
                }
            } catch (Exception e) {
                Debug.LogException(e);
            }
            return(null);
        }
예제 #9
0
    private void Vibrate(long milliseconds)
    {
        if (!GameSettings.instance.vibrationEnabled)
        {
            return;
        }

#if UNITY_ANDROID && !UNITY_EDITOR
        if (!initVibrator)
        {
            vibrator = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject activity = vibrator.GetStatic <AndroidJavaObject>("currentActivity");
            vibrator             = activity.Call <AndroidJavaObject>("getSystemService", "vibrator");
            vibratorUseAmplitude = (apiLevel >= 26 && vibrator.Call <bool>("hasAmplitudeControl")); // API level 26+.
            initVibrator         = true;

            if (vibratorUseAmplitude)
            {
                vibrationEffect = new AndroidJavaClass("android.os.VibrationEffect");
            }
        }

        if (vibratorUseAmplitude)
        {
            int amplitude            = vibrationEffect.GetStatic <int>("DEFAULT_AMPLITUDE");
            AndroidJavaObject effect = vibrationEffect.CallStatic <AndroidJavaObject>("createOneShot", milliseconds, amplitude);
            vibrator.Call("vibrate", effect);
        }
        else
        {
            vibrator.Call("vibrate", milliseconds);
        }
#endif
    }
예제 #10
0
        public void onMessage(string message, int requestCode)
        {
            if (requestCode == SIGNIN_CODE)
            {
                using (AndroidJavaObject sdkManager = new AndroidJavaObject(SDK_MANAGER)) {
                    using (AndroidJavaObject obj = sdkManager.GetStatic <AndroidJavaObject>("userModel")) {
                        SDKManager.vtcUser                    = new VTCUser();
                        SDKManager.vtcUser.accessToken        = obj.Call <string>("getAccessToken");
                        SDKManager.vtcUser.billingAccessToken = obj.Call <string>("getBillingAccessToken");
                        SDKManager.vtcUser.accountName        = obj.Call <string>("getAccountName");
                        SDKManager.vtcUser.accountId          = obj.Call <string>("getAccountId");
                        SDKManager.vtcUser.vcoinBalance       = obj.Call <int>("getVcoinBalance");
                        SDKManager.vtcUser.email              = obj.Call <string>("getEmail");
                    }
                }
            }

            if (requestCode == OPENSHOP_CODE)
            {
            }

            if (SDKManager.m_iOnActivityResult != null)
            {
                SDKManager.m_iOnActivityResult.onMessage(message, requestCode);
            }
        }
예제 #11
0
    /// <summary>
    /// 是否包体签名验证通过(PS:建议后续这个类名改成其他有意义的单词或者乱七八糟的词汇)
    /// </summary>
    /// <returns></returns>
    public bool IsCorrect()
    {
#if UNITY_ANDROID
        // 获取Android的PackageManager
        AndroidJavaClass  unityPlayer    = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject Activity       = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");
        AndroidJavaObject PackageManager = Activity.Call <AndroidJavaObject>("getPackageManager");
        // 获取当前Android应用的包名
        packageName = Activity.Call <string>("getPackageName");
        // 调用getPackageInfo方法来获取签名信息数组
        int GET_SIGNATURES = PackageManager.GetStatic <int>("GET_SIGNATURES");
        AndroidJavaObject   PackageInfo = PackageManager.Call <AndroidJavaObject>("getPackageInfo", packageName, GET_SIGNATURES);
        AndroidJavaObject[] Signatures  = PackageInfo.Get <AndroidJavaObject[]>("signatures");

        // 获取当前的签名的哈希值,判断其与我们签名的哈希值是否一致
        if (Signatures != null && Signatures.Length > 0)
        {
            curSignHash = Signatures[0].Call <int>("hashCode");
            return(curSignHash == MY_SIGN_HASH);
        }
        else
        {
            return(false);
        }
#else
        return(true);
#endif
    }
예제 #12
0
    private IEnumerator CaptureScreenshotProcess()
    {
        Debug.Log("CaptureScreenshotProcess");
        yield return(new WaitForEndOfFrame());

        string path = null;

#if UNITY_EDITOR
        path = fileName;
#elif UNITY_ANDROID
        path = Application.persistentDataPath + "/" + fileName;
#endif
        Debug.Log("BeginCaptureScreenshot:" + path);
        ScreenCapture.CaptureScreenshot(fileName);
        Debug.Log("AfterCaptureScreenshot:" + path);

        var mediaActionSound = new AndroidJavaObject("android.media.MediaActionSound");
        mediaActionSound.Call("play", mediaActionSound.GetStatic <int>("SHUTTER_CLICK"));

        while (File.Exists(path) == false)
        {
            Debug.Log("NoFile:" + path);
            yield return(new WaitForEndOfFrame());
        }

        Debug.Log("CaptureOK:" + path);
        scanFile(path, null);//"image/png";
    }
예제 #13
0
    static public bool IsInstalled(string inPackageName)
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        AndroidJavaObject activity = GetCurrentActivity();
        using (AndroidJavaObject packageMgr = activity.Call <AndroidJavaObject>("getPackageManager"))
        {
            try
            {
                AndroidJavaObject packageInfo = packageMgr.Call <AndroidJavaObject>("getPackageInfo", inPackageName,
                                                                                    packageMgr.GetStatic <int>("GET_SERVICES") | packageMgr.GetStatic <int>("GET_ACTIVITIES"));
                if (packageInfo == null)
                {
                    return(false);
                }

                Ref.Dispose(ref packageInfo);
                return(true);
            }
            catch (Exception e)
            {
                Logger.Log("Unable to get package: {0}", e.Message);
                return(false);
            }
        }
#else
        return(false);
#endif
    }
예제 #14
0
    public static string GetAndroidDeviceID()
    {
        AndroidJavaObject jo     = new AndroidJavaObject("android.os.Build");
        string            serial = jo.GetStatic <string>("SERIAL");

        return(serial);
    }
예제 #15
0
 // NSTORE 인스턴스가 없으면 GET
 public static AndroidJavaObject getNStoreInstance()
 {
     if (NStoreBridgeInstance == null)
     {
         NStoreBridgeInstance = AndroidPlugin.GetStatic <AndroidJavaObject> ("mNStoreBridgeInstance");
     }
     return(NStoreBridgeInstance);
 }
예제 #16
0
    public static void ShareAndroid(string body, string subject, string url, string[] filePaths, string mimeType, bool chooser, string chooserText)
    {
        using (AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            using (AndroidJavaObject currentActivity = unityPlayerClass.GetStatic <AndroidJavaObject>("currentActivity"))
                using (AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"))
                    using (AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent"))
                    {
                        using (intentObject.Call <AndroidJavaObject>("setAction", intentClass.GetStatic <string>("ACTION_SEND")))
                        { }
                        using (intentObject.Call <AndroidJavaObject>("setType", mimeType))
                        { }
                        using (intentObject.Call <AndroidJavaObject>("putExtra", intentClass.GetStatic <string>("EXTRA_SUBJECT"), subject))
                        { }
                        using (intentObject.Call <AndroidJavaObject>("putExtra", intentClass.GetStatic <string>("EXTRA_TEXT"), body))
                        { }

                        if (!string.IsNullOrEmpty(url))
                        {
                            // attach url
                            using (AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"))
                                using (AndroidJavaObject uriObject = uriClass.CallStatic <AndroidJavaObject>("parse", url))
                                    using (intentObject.Call <AndroidJavaObject>("putExtra", intentClass.GetStatic <string>("EXTRA_STREAM"), uriObject))
                                    { }
                        }
                        else if (filePaths != null)
                        {
                            // attach extra files (pictures, pdf, etc.)
                            using (AndroidJavaClass fileProviderClass = new AndroidJavaClass("android.support.v4.content.FileProvider"))
                                using (AndroidJavaObject unityContext = currentActivity.Call <AndroidJavaObject>("getApplicationContext"))
                                    using (AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri"))
                                        using (AndroidJavaObject uris = new AndroidJavaObject("java.util.ArrayList"))
                                        {
                                            string packageName = unityContext.Call <string>("getPackageName");
                                            string authority   = packageName + ".provider";

                                            AndroidJavaObject fileObj = new AndroidJavaObject("java.io.File", filePaths[0]);
                                            AndroidJavaObject uriObj  = fileProviderClass.CallStatic <AndroidJavaObject>("getUriForFile", unityContext, authority, fileObj);

                                            int FLAG_GRANT_READ_URI_PERMISSION = intentObject.GetStatic <int>("FLAG_GRANT_READ_URI_PERMISSION");
                                            intentObject.Call <AndroidJavaObject>("addFlags", FLAG_GRANT_READ_URI_PERMISSION);

                                            using (intentObject.Call <AndroidJavaObject>("putExtra", intentClass.GetStatic <string>("EXTRA_STREAM"), uriObj))
                                            { }
                                        }
                        }

                        // finally start application
                        if (chooser)
                        {
                            AndroidJavaObject jChooser = intentClass.CallStatic <AndroidJavaObject>("createChooser", intentObject, chooserText);
                            currentActivity.Call("startActivity", jChooser);
                        }
                        else
                        {
                            currentActivity.Call("startActivity", intentObject);
                        }
                    }
    }
예제 #17
0
 /// <summary>
 /// 检查系统是否授权
 /// </summary>
 /// <param name="name">授权类型</param>
 /// <returns>是否授权</returns>
 public static bool CheckPermission (string name)
 {
     using (AndroidJavaObject _PackageManager = GetActivity ().Call<AndroidJavaObject> ("getPackageManager"))
     {
         string _name = _GetActivity ().Call<string> ("getPackageName");
         int _ret = _PackageManager.Call<int> ("checkPermission", "android.permission.READ_PHONE_STATE", _name);
         return _ret == _PackageManager.GetStatic<int> ("PERMISSION_GRANTED");
     }
 }
예제 #18
0
    public void ClickShare()
    {
        GameObject.Find("FXManager").GetComponent <FXManager>().SoundManager_F("Touch");
        //Debug.Log("Share");
#if UNITY_ANDROID && !UNITY_EDITOR
        using (AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"))
            using (AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent")) {
                intentObject.Call <AndroidJavaObject>("setAction", intentObject.GetStatic <string>("ACTION_SEND"));
                intentObject.Call <AndroidJavaObject>("setType", "text/plain");
                intentObject.Call <AndroidJavaObject>("putExtra", intentObject.GetStatic <string>("EXTRA_SUBJECT"), subject);
                intentObject.Call <AndroidJavaObject>("putExtra", intentObject.GetStatic <string>("EXTRA_TEXT"), body);
                using (AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
                    using (AndroidJavaObject currentActivity = unity.GetStatic <AndroidJavaObject>("currentActivity"))
                        using (AndroidJavaObject jChooser = intentClass.CallStatic <AndroidJavaObject>("createChooser", intentObject, "Share Via"))
                            currentActivity.Call("startActivity", jChooser);
            }
#endif
    }
예제 #19
0
    // This method is android spesific atm
    public void ShareIt()
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            // This method uses new standard FileProvider
            // it is required when targeting android api >23
            AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
            intentObject.Call <AndroidJavaObject>("setAction", intentObject.GetStatic <string>("ACTION_SEND"));

            AndroidJavaObject fileObj   = new AndroidJavaObject("java.io.File", files[whichScreenShotIsShown]);
            AndroidJavaObject uriObject = fileProvider.CallStatic <AndroidJavaObject>("getUriForFile", unityContext, authority, fileObj);

            intentObject.Call <AndroidJavaObject>("putExtra", intentObject.GetStatic <string>("EXTRA_STREAM"), uriObject);
            intentObject.Call <AndroidJavaObject>("setType", "image/png");
            intentObject.Call <AndroidJavaObject>("addFlags", FLAG_GRANT_READ_URI_PERMISSION);
            currentActivity.Call("startActivity", intentObject);
        }
    }
예제 #20
0
    public static byte[] GetAppIcon(string packageName)
    {
        if (Application.platform != RuntimePlatform.Android)
        {
            return(null);
        }

        sbyte[] decodedBytes = null;

        AndroidJavaObject pm = currentActivity.Call <AndroidJavaObject>("getPackageManager");

        if (pm == null)
        {
            Debug.LogError("PM is null");
        }
        int flag = pm.GetStatic <int>("GET_META_DATA");

        AndroidJavaObject packages = pm.Call <AndroidJavaObject>("getInstalledPackages", flag);
        int size = packages.Call <int>("size");

        for (int i = 0; i < size; i++)
        {
            AndroidJavaObject info = packages.Call <AndroidJavaObject>("get", i);

            if (info != null)
            {
                try
                {
                    string getPackage = info.Get <string>("packageName");

                    if (string.IsNullOrEmpty(getPackage))
                    {
                        Debug.LogError("Package: Is Null");
                    }

                    if (getPackage == packageName)
                    {
                        AndroidJavaObject appInfo = info.Get <AndroidJavaObject>("applicationInfo");

                        if (appInfo == null)
                        {
                            Debug.LogError("AppInfo is Null");
                        }

                        decodedBytes = MyNativeClass.CallStatic <sbyte[]>("getIcon", currentActivity, pm, appInfo);
                    }
                }
                catch (Exception e)
                {
                    Debug.LogError("Icon: " + e.ToString());
                }
            }
        }

        return((byte[])(Array)decodedBytes);
    }
예제 #21
0
    public static bool InstructionsResult()
    {
#if UNITY_ANDROID
        AndroidJavaClass  jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic <AndroidJavaObject>("currentActivity");
        return(jo.GetStatic <bool>("returnResult"));
#else
        return(false);
#endif
    }
예제 #22
0
        /// <summary>
        /// Sets the volume.
        /// </summary>
        /// <param name="volume">Volume.</param>
        public void SetVolume(float volume)
        {
            AndroidJavaObject audioManager = GetAndroidAudioManager();

            int STREAM_MUSIC     = audioManager.GetStatic <int>("STREAM_MUSIC");
            int maxVolume        = audioManager.Call <int>("getStreamMaxVolume", STREAM_MUSIC);
            int normalizedVolume = (int)((float)maxVolume * volume);

            audioManager.Call("setStreamVolume", STREAM_MUSIC, normalizedVolume, 0);
        }
예제 #23
0
        /// <summary>
        /// Gets the volume.
        /// </summary>
        /// <returns>The volume.</returns>
        public float GetVolume()
        {
            AndroidJavaObject audioManager = GetAndroidAudioManager();

            int STREAM_MUSIC  = audioManager.GetStatic <int>("STREAM_MUSIC");
            int maxVolume     = audioManager.Call <int>("getStreamMaxVolume", STREAM_MUSIC);
            int currentVolume = audioManager.Call <int>("getStreamVolume", STREAM_MUSIC);

            return((float)currentVolume / (float)maxVolume);
        }
예제 #24
0
    public void ScreenCapture_Android()
    {
        //写真をとる瞬間だけUI非表示にする
#if !UNITY_EDITOR && UNITY_ANDROID && !UNITY_IOS
        var mediaActionSound = new AndroidJavaObject("android.media.MediaActionSound");
        mediaActionSound.Call("play", mediaActionSound.GetStatic <int>("SHUTTER_CLICK"));
        canvas.SetActive(false);
        StartCoroutine("Captcha");
#endif
    }
예제 #25
0
    public static void BackgroundApp()
    {
#if UNITY_EDITOR
#elif UNITY_IOS
        TeakIntegrationTestSuspend();
#elif UNITY_ANDROID
        using (AndroidJavaClass intentCls = new AndroidJavaClass("android.content.Intent")) {
            using (AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent")) {
                intent.Call <AndroidJavaObject>("setAction", intent.GetStatic <string>("ACTION_MAIN"));
                intent.Call <AndroidJavaObject>("addCategory", intent.GetStatic <string>("CATEGORY_HOME"));

                using (AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
                    using (AndroidJavaObject jo = jc.GetStatic <AndroidJavaObject>("currentActivity")) {
                        jo.Call("startActivity", intent);
                    }
                }
            }
        }
#endif
    }
예제 #26
0
    public static bool isEnabled()
    {
#if UNITY_ANDROID
        AndroidJavaClass  jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic <AndroidJavaObject>("currentActivity");
        jo.Call("UpdateChildLockStatus");
        return(jo.GetStatic <bool>("isEnabled"));
#else
        return(false);
#endif
    }
        private static void GetVersionInfo()
        {
            AndroidJavaClass  unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject context     = unityPlayer.GetStatic <AndroidJavaObject> ("currentActivity").Call <AndroidJavaObject> ("getApplicationContext");
            AndroidJavaObject pManager    = context.Call <AndroidJavaObject> ("getPackageManager");
            AndroidJavaObject pInfo       = pManager.Call <AndroidJavaObject> ("getPackageInfo",
                                                                               context.Call <string> ("getPackageName"),
                                                                               pManager.GetStatic <int> ("GET_ACTIVITIES"));

            AbundleVersion = pInfo.Get <string> ("versionName");
        }
 public FieldType GetStatic <FieldType>(string fieldName)
 {
     if (Application.platform == RuntimePlatform.Android)
     {
         return(jo.GetStatic <FieldType>(fieldName));
     }
     else
     {
         return(default(FieldType));
     }
 }
예제 #29
0
 protected void setPlatform()
 {
     // set the platform type and version
     using (AndroidJavaObject platform = new AndroidJavaClass("com.newrelic.agent.android.ApplicationPlatform").GetStatic <AndroidJavaObject> ("Unity")) {
         agentInstance.Call <AndroidJavaObject> ("withApplicationFramework", platform);
         using (AndroidJavaObject agentConfig = pluginInstance.GetStatic <AndroidJavaObject> ("agentConfiguration")) {
             agentConfig.Call("setApplicationPlatformVersion", platformVersion);
             UnityEngine.Debug.Log("Unity application platform: version  " + platformVersion);
         }
     }
 }
예제 #30
0
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            //写真をとる瞬間だけUI非表示にする
            //シャッター音
            var mediaActionSound = new AndroidJavaObject("android.media.MediaActionSound");
            mediaActionSound.Call("play", mediaActionSound.GetStatic <int>("SHUTTER_CLICK"));

            StartCoroutine("Captcha");
        }
    }