예제 #1
0
        public override void FloorPlaceGetPose(out Vector3 position, out Quaternion orientation)
        {
            position    = new Vector3();
            orientation = new Quaternion();

            if (m_KudanAR_Instance != null)
            {
                m_KudanAR_Instance.Call("updateArbi", _floorHeight);

                AndroidJavaObject floorPosition    = m_KudanAR_Instance.Get <AndroidJavaObject>("m_FloorPosition");
                AndroidJavaObject floorOrientation = m_KudanAR_Instance.Get <AndroidJavaObject>("m_FloorOrientation");

                position.x = floorPosition.Get <float>("x");
                position.y = floorPosition.Get <float>("y");
                position.z = floorPosition.Get <float>("z");


                orientation.x = floorOrientation.Get <float>("x");
                orientation.y = floorOrientation.Get <float>("y");
                orientation.z = floorOrientation.Get <float>("z");
                orientation.w = floorOrientation.Get <float>("w");
            }
        }
예제 #2
0
 public void onAttributionChanged(AndroidJavaObject attribution)
 {
     if (callback != null)
     {
         AdjustAttribution adjustAttribution = new AdjustAttribution();
         adjustAttribution.trackerName  = ((!(attribution.Get <string>(AdjustUtils.KeyTrackerName) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyTrackerName) : null);
         adjustAttribution.trackerToken = ((!(attribution.Get <string>(AdjustUtils.KeyTrackerToken) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyTrackerToken) : null);
         adjustAttribution.network      = ((!(attribution.Get <string>(AdjustUtils.KeyNetwork) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyNetwork) : null);
         adjustAttribution.campaign     = ((!(attribution.Get <string>(AdjustUtils.KeyCampaign) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyCampaign) : null);
         adjustAttribution.adgroup      = ((!(attribution.Get <string>(AdjustUtils.KeyAdgroup) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyAdgroup) : null);
         adjustAttribution.creative     = ((!(attribution.Get <string>(AdjustUtils.KeyCreative) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyCreative) : null);
         adjustAttribution.clickLabel   = ((!(attribution.Get <string>(AdjustUtils.KeyClickLabel) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyClickLabel) : null);
         adjustAttribution.adid         = ((!(attribution.Get <string>(AdjustUtils.KeyAdid) == string.Empty)) ? attribution.Get <string>(AdjustUtils.KeyAdid) : null);
         callback(adjustAttribution);
     }
 }
예제 #3
0
        public static PlayFabNotificationPackage GetPushCache()
        {
            AndroidJavaObject package = new AndroidJavaObject("com.playfab.unityplugin.GCM.PlayFabNotificationPackage");

            package = PlayFabPushCacheClass.CallStatic <AndroidJavaObject>("getPushCache");

            PlayFabNotificationPackage cache = new PlayFabNotificationPackage();

            if (package != null)
            {
                cache.Title      = package.Get <string>("Title");
                cache.Message    = package.Get <string>("Message");
                cache.Icon       = package.Get <string>("Icon");
                cache.Sound      = package.Get <string>("Sound");
                cache.CustomData = package.Get <string>("CustomData");
            }
            else
            {
                Debug.Log("Package was null");
            }

            return(cache);
        }
예제 #4
0
    public string scan(int x, int y)
    {
        if (proxyObject == null)
        {
            return(id);
        }
        AndroidJavaObject scanResult = proxyObject.Call <AndroidJavaObject>("scan", x, y);

        if (scanResult == null)
        {
            id = "null";
            Debug.Log("No smart piece found at (" + x + "," + y + ")");
        }
        else
        {
            id = scanResult.Get <string>("id");
            AndroidJavaObject loc   = scanResult.Get <AndroidJavaObject>("location");
            string            bank  = loc.Get <string>("first");
            string            index = loc.Get <string>("second");
            Debug.Log("Found smart piece at (x,y):" + x + "," + y + " with id: " + id + " at :" + bank + " " + index);
        }
        return(id);        //added
    }
예제 #5
0
 public void autoScan()
 {
     if (proxyObject == null)
     {
         return;
     }
     AndroidJavaObject[] scanResults = proxyObject.Call <AndroidJavaObject[]>("autoScan");
     if (scanResults.Length <= 0)
     {
         Debug.Log("No smart piece found");
     }
     else
     {
         for (int i = 0; i < scanResults.Length; i++)
         {
             string            id    = scanResults[i].Get <string>("id");
             AndroidJavaObject loc   = scanResults[i].Get <AndroidJavaObject>("location");
             string            bank  = loc.Get <string>("first");
             string            index = loc.Get <string>("second");
             Debug.Log("SM #" + (i + 1) + " with id: " + id + "at: " + bank + " " + index);
         }
     }
 }
예제 #6
0
    public static int GetVersionCode()
    {
        AndroidJavaClass  androidJavaClass  = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject @static           = androidJavaClass.GetStatic <AndroidJavaObject>("currentActivity");
        AndroidJavaObject androidJavaObject = @static.Call <AndroidJavaObject>("getPackageManager", new object[0]);
        string            text = @static.Call <string>("getPackageName", new object[0]);
        AndroidJavaObject androidJavaObject2 = androidJavaObject.Call <AndroidJavaObject>("getPackageInfo", new object[2]
        {
            text,
            0
        });

        return(androidJavaObject2.Get <int>("versionCode"));
    }
예제 #7
0
    //=====================================================================================================

    public static List <PackageInfo> GetInstalledApps()
    {
        if (Application.platform != RuntimePlatform.Android)
        {
            return(null);
        }
        AndroidJavaObject packages = currentActivity.Call <AndroidJavaObject>("getPackageManager").Call <AndroidJavaObject>("getInstalledPackages", 0);
        int size = packages.Call <int>("size");
        List <PackageInfo> list = new List <PackageInfo>();

        for (int i = 0; i < size; i++)
        {
            AndroidJavaObject info        = packages.Call <AndroidJavaObject>("get", i);
            PackageInfo       packageInfo = new PackageInfo();
            packageInfo.firstInstallTime = info.Get <long>("firstInstallTime");
            packageInfo.packageName      = info.Get <string>("packageName");
            packageInfo.lastUpdateTime   = info.Get <long>("lastUpdateTime");
            packageInfo.versionCode      = info.Get <int>("versionCode");
            packageInfo.versionName      = info.Get <string>("versionName");
            list.Add(packageInfo);
        }
        return(list);
    }
 private static void populateOBBData()
 {
     if (obb_version != 0)
     {
         return;
     }
     using (AndroidJavaClass unity_player = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
     {
         AndroidJavaObject current_activity = unity_player.GetStatic <AndroidJavaObject>("currentActivity");
         obb_package = current_activity.Call <string>("getPackageName");
         AndroidJavaObject package_info = current_activity.Call <AndroidJavaObject>("getPackageManager").Call <AndroidJavaObject>("getPackageInfo", obb_package, 0);
         obb_version = package_info.Get <int>("versionCode");
     }
 }
예제 #9
0
파일: Media.cs 프로젝트: pmosoft/CrazyWord
 internal virtual void Init(AndroidJavaObject obj)
 {
     Id          = obj.Get <long>("id");
     Uri         = obj.Get <string>("uri");
     Path        = obj.Get <string>("path");
     Size        = obj.Get <long>("size");
     DisplayName = obj.Get <string>("displayName");
     Title       = obj.Get <string>("title");
 }
예제 #10
0
            void loginCallback(AndroidJavaObject result)
            {
                var appleIdSubsystem = new List <SignInWithApplePlayerIdentitySubsystem>();

                SubsystemManager.GetInstances(appleIdSubsystem);

                if (appleIdSubsystem.Count > 0 && appleIdSubsystem[0].m_LoginCompleted != null)
                {
                    var args        = new IdentityLoginCallbackArgs();
                    var code        = result.Get <string>("code");
                    var displayName = result.Get <string>("displayName");
                    var email       = result.Get <string>("email");
                    var error       = result.Get <string>("error");
                    if (error != null)
                    {
                        args.error         = new Error();
                        args.error.message = error;
                    }
                    else
                    {
                        args.userInfo             = new UserInfo();
                        args.userInfo.displayName = displayName;
                        args.userInfo.email       = email;

                        args.externalToken            = new ExternalToken();
                        args.externalToken.authCode   = code;
                        args.externalToken.idProvider = k_ProviderId;

                        var settings = AppleLoader.GetSettings();
                        args.externalToken.clientId    = settings?.m_ServiceId;
                        args.externalToken.redirectUri = settings?.m_CallbackEndpoint;
                    }

                    appleIdSubsystem[0].m_LoginCompleted(args);
                    appleIdSubsystem[0].m_LoginCompleted = null;
                }
            }
예제 #11
0
        public override bool Show(int uniqueId,
                                  double x,
                                  double y,
                                  double width,
                                  double height)
        {
            AndroidJavaObject adView = AdViewForAdViewId(uniqueId);

            if (adView == null)
            {
                return(false);
            }
            AndroidJavaClass  unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject activity    = unityPlayer.GetStatic <AndroidJavaObject>("currentActivity");

            activity.Call("runOnUiThread", new AndroidJavaRunnable(() => {
                AndroidJavaObject context        = activity.Call <AndroidJavaObject>("getApplicationContext");
                AndroidJavaObject resources      = context.Call <AndroidJavaObject> ("getResources");
                AndroidJavaObject displayMetrics =
                    resources.Call <AndroidJavaObject> ("getDisplayMetrics");
                float density = displayMetrics.Get <float> ("density");

                AndroidJavaObject layoutParams = new AndroidJavaObject("android.widget.LinearLayout$LayoutParams",
                                                                       (int)(width * density),
                                                                       (int)(height * density));
                AndroidJavaObject linearLayout = new AndroidJavaObject("android.widget.LinearLayout", activity);
                AndroidJavaClass R             = new AndroidJavaClass("android.R$id");
                AndroidJavaObject view         = activity.Call <AndroidJavaObject> ("findViewById", R.GetStatic <int> ("content"));

                AndroidJavaObject parent = adView.Call <AndroidJavaObject>("getParent");
                if (parent != null)
                {
                    IntPtr ptr = AndroidJNI.GetMethodID(parent.GetRawClass(), "removeView", "(Landroid/view/View;)V");
                    if (ptr != IntPtr.Zero)
                    {
                        parent.Call("removeView", adView);
                    }
                    else
                    {
                        AndroidJNI.ExceptionClear();
                    }
                }

                layoutParams.Call("setMargins", (int)(x * density), (int)(y * density), 0, 0);
                linearLayout.Call("addView", adView, layoutParams);
                view.Call("addView", linearLayout);
            }));
            return(true);
        }
예제 #12
0
    public FieldType Get <FieldType>(string fieldName)
    {
#if UNITY_ANDROID
        if (Application.platform == RuntimePlatform.Android)
        {
            return(jo.Get <FieldType>(fieldName));
        }
        else
        {
            return(default(FieldType));
        }
#else
        return(default(FieldType));
#endif
    }
예제 #13
0
            public DeviceAudioInformation(AndroidJavaObject jo)
            {
                AndroidJavaClass versionClass = new AndroidJavaClass("android/os/Build$VERSION");
                int sdkLevel = versionClass.GetStatic <int>("SDK_INT");

                this.nativeSamplingRate = jo.Get <int>("nativeSamplingRate");
                this.optimalBufferSize  = jo.Get <int>("optimalBufferSize");
                this.lowLatencyFeature  = jo.Get <bool>("lowLatencyFeature");
                this.proAudioFeature    = jo.Get <bool>("proAudioFeature");

                if (sdkLevel >= 23)
                {
                    //This one is a Java array, we need to do JNI manually to each elements
                    AndroidJavaObject outputDevicesJo = jo.Get <AndroidJavaObject>("outputDevices");

                    IntPtr outputDevicesRaw   = outputDevicesJo.GetRawObject();
                    int    outputDeviceAmount = AndroidJNI.GetArrayLength(outputDevicesRaw);

                    this.audioDevices = new AndroidAudioDeviceType[outputDeviceAmount];

                    for (int i = 0; i < outputDeviceAmount; i++)
                    {
                        IntPtr outputDevice         = AndroidJNI.GetObjectArrayElement(outputDevicesRaw, i);
                        IntPtr audioDeviceInfoClass = AndroidJNI.GetObjectClass(outputDevice);
                        IntPtr getTypeMethod        = AndroidJNIHelper.GetMethodID(audioDeviceInfoClass, "getType");
                        int    type = AndroidJNI.CallIntMethod(outputDevice, getTypeMethod, new jvalue[] { });
                        this.audioDevices[i] = (AndroidAudioDeviceType)type;
                    }
                }
                else
                {
                    this.audioDevices = new AndroidAudioDeviceType[0];
                }

                //Debug.Log(this.ToString());
            }
예제 #14
0
    /// <summary>
    /// JNI 获取属性值
    /// </summary>
    /// <param name="className">类路径</param>
    /// <param name="filedName">静态属性名</param>
    public static T GetField <T>(string className, string fieldName)
    {
        T res = default(T);

#if UNITY_ANDROID && !UNITY_EDITOR
        AndroidJavaObject clazzObj = null;
        using (clazzObj = new AndroidJavaObject(className))
        {
            res = clazzObj.Get <T>(fieldName);
        }
        clazzObj.Dispose();
        clazzObj = null;
#endif
        return(res);
    }
예제 #15
0
    public string GetAddress()
    {
        string currentAddress = "获取定位中...";

        try
        {
            currentAddress = tcMap.Get <String>("currentAddress");
        }
        catch (Exception e)
        {
            return(e.Message);
        }

        return(currentAddress);
    }
예제 #16
0
 private static int getDensitySize(int size)
 {
                 #if UNITY_ANDROID
     AndroidJavaObject displayMetrics      = new AndroidJavaObject("android.util.DisplayMetrics");
     AndroidJavaClass  unityPlayerClass    = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
     AndroidJavaObject activityObject      = unityPlayerClass.GetStatic <AndroidJavaObject> ("currentActivity");
     AndroidJavaObject windowManagerObject = activityObject.Call <AndroidJavaObject> ("getWindowManager");
     AndroidJavaObject displayObject       = windowManagerObject.Call <AndroidJavaObject> ("getDefaultDisplay");
     displayObject.Call("getMetrics", displayMetrics);
     float density = displayMetrics.Get <float> ("density");
     return((int)(((size / density) + 0.5f)));
                 #else
     return(0);
         #endif
 }
        public void DeviceConnectedEventHandler(object sender, AndroidMessageArgs <AndroidJavaObject> args)
        {
            AndroidJavaObject device = args.data;
            int pid = device.Get <int> ("PID");

            if (!__Generics.ContainsKey(pid.ToString()))
            {
                // UnityEngine.Debug.Log(args.Message);
                GenericHIDDevice info = new GenericHIDDevice(__Generics.Count, device, this);

                info.hidInterface = this;

                ResolveDevice(info);
            }
        }
예제 #18
0
    /*void RenderExternalAlpha8Texture()
     * {
     *  if (Application.platform != RuntimePlatform.Android)
     *  {
     *      return;
     *  }
     *
     *  double now = (DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;
     *
     *  if (timeLastExecution < now)
     *  {
     *      timeLastExecution = now + INTERVAL_IN_MS;
     *
     *      AndroidJavaClass plugin = new AndroidJavaClass(Config.pluginClassString);
     *      AndroidJavaObject returnedObject = plugin.CallStatic<AndroidJavaObject>("getAlpha8TextureResult");
     *
     *      Int32 texPtr = returnedObject.Get<Int32>("texturePtr");
     *      Int32 width = returnedObject.Get<Int32>("width");
     *      Int32 height = returnedObject.Get<Int32>("height");
     *
     *      // Debug.Log("texture pointer: " + texPtr + ", width: " + width + ", height: " + height);
     *
     *      if (width <= 0 || height <= 0 || texPtr <= 0)
     *      {
     *          return;
     *      }
     *
     *      if (null == nativeTexture || nativeTexture.width != width || nativeTexture.height != height)
     *      {
     *          nativeTexture = Texture2D.CreateExternalTexture(
     *              width, height, TextureFormat.Alpha8, false, false, (IntPtr)texPtr);
     *          nativeTexture.filterMode = FilterMode.Point;
     *      }
     *
     *      this.GetComponent<Renderer>().material.mainTexture = nativeTexture;
     *      nativeTexture.UpdateExternalTexture((IntPtr)texPtr);
     *  }
     * }*/

    void RenderExternalArgbTexture()
    {
        if (Application.platform != RuntimePlatform.Android)
        {
            return;
        }

        double now = (DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds;

        if (timeLastExecution < now)
        {
            timeLastExecution = now + INTERVAL_IN_MS;

            AndroidJavaClass  plugin         = new AndroidJavaClass(Config.pluginClassString);
            AndroidJavaObject returnedObject = plugin.CallStatic <AndroidJavaObject>("getArgbTextureResult");

            Int32 texPtr = returnedObject.Get <Int32>("texturePtr");
            Int32 width  = returnedObject.Get <Int32>("width");
            Int32 height = returnedObject.Get <Int32>("height");

            if (width <= 0 || height <= 0 || texPtr <= 0)
            {
                return;
            }

            if (null == nativeTexture || nativeTexture.width != width || nativeTexture.height != height)
            {
                nativeTexture = Texture2D.CreateExternalTexture(
                    width, height, TextureFormat.ARGB32, false, false, (IntPtr)texPtr);
                nativeTexture.filterMode = FilterMode.Point;
            }

            this.GetComponent <Renderer>().material.mainTexture = nativeTexture;
            nativeTexture.UpdateExternalTexture((IntPtr)texPtr);
        }
    }
예제 #19
0
            // ReSharper disable once InconsistentNaming
            // ReSharper disable once UnusedMember.Local
            void onTextureDataReceived(AndroidJavaObject jo, string fileName)
            {
                AndroidJavaObject bufferObject = jo.Get <AndroidJavaObject>("Buffer");

                byte[] buffer = AndroidJNIHelper.ConvertFromJNIArray <byte[]>(bufferObject.GetRawObject());

                GoodiesSceneHelper.Queue(() =>
                {
                    var tex = new Texture2D(2, 2);
                    tex.LoadImage(buffer);

                    var result = new ImagePickResult(fileName, tex);
                    _onPhotoReceivedAction(result);
                });
            }
        private void AdaptPhoneScreenSize()
        {
            AndroidJavaClass  j = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject currentActivity = j.GetStatic <AndroidJavaObject>("currentActivity");
            AndroidJavaObject displayManager  = currentActivity.Call <AndroidJavaObject>("getSystemService", new AndroidJavaObject("java.lang.String", "display"));
            AndroidJavaObject display         = displayManager.Call <AndroidJavaObject>("getDisplay", 0);
            AndroidJavaObject outSize         = new AndroidJavaObject("android.graphics.Point");

            display.Call("getRealSize", outSize);
            float _real_screen_width  = outSize.Get <int>("x");
            float _real_screen_height = outSize.Get <int>("y");

            _touch_area_x_min = -0.93f;
            _touch_area_x_max = 0.93f;
            float _real_touch_area_top    = _real_screen_height - (Design_Phone_Screen_Height - Design_Touch_Area_Top) * _real_screen_width / Design_Phone_Screen_Width;
            float _real_touch_area_bottom = _real_screen_height - (Design_Phone_Screen_Height - Design_Touch_Area_Bottom) * _real_screen_width / Design_Phone_Screen_Width;

            _touch_area_y_min    = _real_touch_area_bottom / _real_screen_height;
            _touch_area_y_max    = _real_touch_area_top / _real_screen_height;
            _touch_area_y_min    = -(_touch_area_y_min - 0.5f) * 2f; // value range maps to  -1f ~ 1f
            _touch_area_y_max    = -(_touch_area_y_max - 0.5f) * 2f; // value range maps to  -1f ~ 1f
            _touch_area_y_center = (_touch_area_y_min + _touch_area_y_max) / 2f;
            _screen_adapted      = true;
        }
예제 #21
0
    AndroidJavaObject GetUnity()
    {
        if (Application.isEditor)
        {
            return(null);
        }

        Debug.Log("Get Unity");
        AndroidJNI.AttachCurrentThread();
        AndroidJavaClass  jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic <AndroidJavaObject>("currentActivity");
        AndroidJavaObject jp = jo.Get <AndroidJavaObject> ("mUnityPlayer");

        return(jp);
    }
예제 #22
0
 private static void populateOBBData()
 {
     if (obb_version == 0)
     {
         using (AndroidJavaClass androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
         {
             AndroidJavaObject @static = androidJavaClass.GetStatic <AndroidJavaObject>("currentActivity");
             obb_package = @static.Call <string>("getPackageName", new object[0]);
             AndroidJavaObject androidJavaObject = @static.Call <AndroidJavaObject>("getPackageManager", new object[0]).Call <AndroidJavaObject>("getPackageInfo", new object[2] {
                 obb_package, 0
             });
             obb_version = androidJavaObject.Get <int>("versionCode");
         }
     }
 }
        /// <summary>
        /// Get application version code.
        /// </summary>
        public static int GetVersionCode()
        {
#if UNITY_EDITOR && UNITY_ANDROID
            return(UnityEditor.PlayerSettings.Android.bundleVersionCode);
#elif UNITY_ANDROID
            AndroidJavaClass  contextCls  = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject context     = contextCls.GetStatic <AndroidJavaObject>("currentActivity");
            AndroidJavaObject packageMngr = context.Call <AndroidJavaObject>("getPackageManager");
            string            packageName = context.Call <string>("getPackageName");
            AndroidJavaObject packageInfo = packageMngr.Call <AndroidJavaObject>("getPackageInfo", packageName, 0);
            return(packageInfo.Get <int>("versionCode"));
#else
            return(0);
#endif
        }
예제 #24
0
    void RenderTexture()
    {
        AndroidJavaClass  plugin         = new AndroidJavaClass(Config.pluginClassString);
        AndroidJavaObject returnedObject = plugin.CallStatic <AndroidJavaObject>("getArgbTextureResult");

        Int32 texPtr = returnedObject.Get <Int32>("texturePtr");
        Int32 width  = returnedObject.Get <Int32>("width");
        Int32 height = returnedObject.Get <Int32>("height");

        if (width <= 0 || height <= 0 || texPtr <= 0)
        {
            return;
        }

        if (null == nativeTexture || nativeTexture.width != width || nativeTexture.height != height)
        {
            nativeTexture = Texture2D.CreateExternalTexture(
                width, height, TextureFormat.ARGB32, false, false, (IntPtr)texPtr);
            nativeTexture.filterMode = FilterMode.Point;
        }

        this.GetComponent <RawImage>().texture = nativeTexture;
        nativeTexture.UpdateExternalTexture((IntPtr)texPtr);
    }
예제 #25
0
 public static int dip2px(AndroidJavaObject activityJO, float dpValue)
 {
     try
     {
         AndroidJavaObject resourceJO       = activityJO.Call <AndroidJavaObject>("getResources");
         AndroidJavaObject displayMetricsJO = resourceJO.Call <AndroidJavaObject>("getDisplayMetrics");
         float             scale            = displayMetricsJO.Get <float>("density");
         return((int)(dpValue * scale + 0.5f));
     }
     catch (System.Exception e)
     {
         //Main.errorString += string.Format("dip2px failed!! Exception={0}\n",e);
         BaseLogSystem.internal_Info("dip2px failed!!!! Exception={0}", e);
     }
     return((int)dpValue);
 }
예제 #26
0
    private void OnVideoDataArrive(AndroidJavaObject videoFrameData)
    {
        byte[] buffer = videoFrameData.Get <byte[]>("buffer");

        //int size = videoFrameData.Get<int>("bufferSize");
        //int width = videoFrameData.Get<int>("videoWidth");
        //int height = videoFrameData.Get<int>("videoHeight");
        //Debug.Log(string.Format("buf length:{0}, size:{1}, width:{2}, height:{3}。", buffer.Length, size, width, height));
        videoFrames.Add(buffer);

        //回收android侧的 帧数据 对象
        if (pluginInst != null)
        {
            pluginInst.Call("RecycleFrameData", videoFrameData);
        }
    }
예제 #27
0
    /// <summary>
    /// Постоянно проверяет доступ к файлам
    /// </summary>
    private void Update()
    {
#if UNITY_ANDROID && !UNITY_EDITOR
        GetVideoList.Call("UpdateCheckPerm");
        allowed = GetVideoList.Get <bool>("allowed");
#endif
#if UNITY_EDITOR
        allowed = true;
#endif
        if (allowed)
        {
            Draw();
        }
    }
예제 #28
0
    /// <summary>
    /// Gets the version code.
    /// </summary>
    /// <returns>The version code.</returns>
    /// <param name="packageName">Package name.</param>
    public static int GetVersionCode(string packageName)
    {
        AndroidJavaObject unityActivity = GetUnityActivity();

        if (unityActivity != null && !string.IsNullOrEmpty(packageName))
        {
            AndroidJavaObject packageInfo = GetPackageInfo(packageName);

            if (packageInfo != null)
            {
                return(packageInfo.Get <int>("versionCode"));
            }
        }

        return(-1);
    }
예제 #29
0
    /// <summary>
    /// Gets the name of the version.
    /// </summary>
    /// <returns>The version name.</returns>
    /// <param name="packageName">Package name.</param>
    public static string GetVersionName(string packageName)
    {
        AndroidJavaObject unityActivity = GetUnityActivity();

        if (unityActivity != null && !string.IsNullOrEmpty(packageName))
        {
            AndroidJavaObject packageInfo = GetPackageInfo(packageName);

            if (packageInfo != null)
            {
                return(packageInfo.Get <string>("versionName"));
            }
        }

        return("Not Set");
    }
예제 #30
0
 static float AndroidDevicePixelRatio()
 {
     using (
         AndroidJavaClass unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")
         ) {
         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);
             return(metricsInstance.Get <float>("density"));
         }
     }
 }