Example #1
0
        public static Dictionary <AndroidPermiossionType, PermissionState> Request(AndroidPermiossionType[] types)
        {
            var output = new Dictionary <AndroidPermiossionType, PermissionState>();

#if UNITY_ANDROID
            var permissions = types.Select(e => e.ToPermissionString()).ToArray();

            PermissionCallback nativeCallback;
            object             threadLock = new object();
            lock (threadLock)
            {
                nativeCallback = new PermissionCallback(threadLock);
                ajc.CallStatic("RequestPermission", permissions, context, nativeCallback, GetCachedPermissionStates(permissions));

                if (nativeCallback.Result == null)
                {
                    System.Threading.Monitor.Wait(threadLock);
                }
            }

            output = ProcessPermissionRequest(types, nativeCallback.Result);
            return(output);
#else
            Debug.LogError("invalid method calling in this platform");
            return(output);
#endif
        }
Example #2
0
    /**
     * action:1,定位
     */
    public static void RequestPermission(PermissionCallback callback, int action)
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        NGPermissionCallbackAndroid nativeCallback = new NGPermissionCallbackAndroid(callback);
        AJC.CallStatic("RequestPermission", Context, nativeCallback, action, PlayerPrefs.GetInt("NativePermission" + action, (int)Permission.ShouldAsk));
#elif !UNITY_EDITOR && UNITY_IOS
        // TODO ios todo something
#else
#endif
    }
    public static Permission[] RequestPermissions(params string[] permissions)
    {
        ValidateArgument(permissions);

#if IS_ANDROID_PLATFORM
        PermissionCallback nativeCallback;
        object             threadLock = new object();
        lock ( threadLock )
        {
            nativeCallback = new PermissionCallback(threadLock);
            AJC.CallStatic("RequestPermission", permissions, Context, nativeCallback, GetCachedPermissions(permissions));

            if (nativeCallback.Result == null)
            {
                System.Threading.Monitor.Wait(threadLock);
            }
        }

        return(ProcessPermissionRequest(permissions, nativeCallback.Result));
#else
        return(GetDummyResult(permissions));
#endif
    }
Example #4
0
        //    @Override
        //    public void takePicture(final OnTakePictureCallback onTakePictureCallback) {
        //        if (takingPicture.get()) {
        //            return;
        //        }
        //
        //        switch (displayOrientation) {
        //            case CameraView.ORIENTATION_PORTRAIT:
        //                parameters.setRotation(90);
        //                break;
        //            case CameraView.ORIENTATION_HORIZONTAL:
        //                parameters.setRotation(0);
        //                break;
        //            case CameraView.ORIENTATION_INVERT:
        //                parameters.setRotation(180);
        //                break;
        //            default:
        //                break;
        //        }
        //        Camera.Size picSize =
        //                getOptimalSize(preferredWidth, preferredHeight, camera.getParameters().getSupportedPictureSizes());
        //        parameters.setPictureSize(picSize.width, picSize.height);
        //        camera.setParameters(parameters);
        //        takingPicture.set(true);
        //        camera.autoFocus(new Camera.AutoFocusCallback() {
        //            @Override
        //            public void onAutoFocus(boolean success, Camera camera) {
        //                camera.cancelAutoFocus();
        //                try {
        //                    camera.takePicture(null, null, new Camera.PictureCallback() {
        //                        @Override
        //                        public void onPictureTaken(byte[] data, Camera camera) {
        //                            camera.startPreview();
        //                            takingPicture.set(false);
        //                            if (onTakePictureCallback != null) {
        //                                onTakePictureCallback.onPictureTaken(data);
        //                            }
        //                        }
        //                    });
        //                } catch (RuntimeException e) {
        //                    e.printStackTrace();
        //                    camera.startPreview();
        //                    takingPicture.set(false);
        //                }
        //            }
        //        });
        //    }


        public void setPermissionCallback(PermissionCallback callback)
        {
            this.permissionCallback = callback;
        }
Example #5
0
    /// <summary>
    /// Requests permission to be granted to this application.
    /// </summary>
    /// <param name="callback">Callback of the result of the requested permission.</param>
    public void RequestPermission(Action <PermissionStatus> callback)
    {
        PermissionCallback cb = new PermissionCallback(PERMISSION_NAME, callback);

        permissionFragment.Call("requestPermission", PERMISSION_NAME, cb);
    }