Esempio n. 1
0
        /**
		 *权限要求
         *在Java方面进行Rationale的处理等
		 * @param permission
		 * @param callback
		 */
        public static IEnumerator GrantPermission(string permission, OnPermission callback)
		{
            Debug.Log(TAG + "GrantPermission:" + permission);
            if (!HasPermission(permission))
			{
				grantResult = PermissionGrantResult.PERMISSION_DENY;
				isPermissionRequesting = true;
				using (AndroidJavaClass clazz = new AndroidJavaClass(FQCN_PLUGIN))
				{
					clazz.CallStatic("grantPermission",
						AndroidUtils.GetCurrentActivity(), permission);
				}
				float timeElapsed = 0;
				while (isPermissionRequesting)
				{
					if ((PermissionTimeoutSecs > 0) && (timeElapsed > PermissionTimeoutSecs))
					{
						isPermissionRequesting = false;
						yield break;
					}
					timeElapsed += Time.deltaTime;
						yield return null;
				}
				callback(permission, grantResult);
			}
			else
			{
				callback(permission, PermissionGrantResult.PERMISSION_GRANT);
			}
	
			yield break;
		}
Esempio n. 2
0
		/**
		 * パーミッション要求
		 * こっちはJava側でRationaleの処理等を行う
		 * @param permission
		 * @param callback
		 */
		public static IEnumerator GrantPermission(string permission, OnPermission callback)
		{
#if (!NDEBUG && DEBUG && ENABLE_LOG)
			Console.WriteLine($"{TAG}GrantPermission:{permission}");
#endif
			if (!HasPermission(permission))
			{
				grantResult = PermissionGrantResult.PERMISSION_DENY;
				isPermissionRequesting = true;
				using (AndroidJavaClass clazz = new AndroidJavaClass(FQCN_PLUGIN))
				{
					clazz.CallStatic("grantPermission",
						AndroidUtils.GetCurrentActivity(), permission);
				}
				float timeElapsed = 0;
				while (isPermissionRequesting)
				{
					if ((PermissionTimeoutSecs > 0) && (timeElapsed > PermissionTimeoutSecs))
					{
						isPermissionRequesting = false;
						yield break;
					}
					timeElapsed += Time.deltaTime;
						yield return null;
				}
				callback(permission, grantResult);
			}
			else
			{
				callback(permission, PermissionGrantResult.PERMISSION_GRANT);
			}
	
			yield break;
		}
Esempio n. 3
0
        /**
		 * 请求照相机权限
		 * @param callback
		 */
        public static IEnumerator GrantCameraPermission(OnPermission callback)
		{
            Debug.Log(TAG + "GrantCameraPermission:");
            if (CheckAndroidVersion(23))
			{
                // Android 9以后,访问UVC设备也需要CAMERA权限
                yield return GrantPermission(PERMISSION_CAMERA, callback);
			}
			else
			{
                // 不满Android 6的话不需要权限要求处理
                callback(PERMISSION_CAMERA, PermissionGrantResult.PERMISSION_GRANT);
			}

			yield break;
		}
Esempio n. 4
0
		/**
		 * カメラパーミッションを要求
		 * @param callback
		 */
		public static IEnumerator GrantCameraPermission(OnPermission callback)
		{
#if (!NDEBUG && DEBUG && ENABLE_LOG)
			Console.WriteLine($"{TAG}GrantCameraPermission:");
#endif
			if (CheckAndroidVersion(23))
			{
				// Android9以降ではUVC機器アクセスにもCAMERAパーミッションが必要
				yield return GrantPermission(PERMISSION_CAMERA, callback);
			}
			else
			{
				// Android 6 未満ではパーミッション要求処理は不要
				callback(PERMISSION_CAMERA, PermissionGrantResult.PERMISSION_GRANT);
			}

			yield break;
		}