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 }
/** * 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 }
// @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; }
/// <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); }