//-------------------------------------------------------------------------------- private IEnumerator Initialize() { AndroidDebug.Logd(TAG, "Initialize:"); if (AndroidUtils.CheckAndroidVersion(28)) { yield return(AndroidUtils.GrantCameraPermission((string permission, AndroidUtils.PermissionGrantResult result) => { AndroidDebug.Logd(TAG, "Initialize:" + result + "-" + permission); switch (result) { case AndroidUtils.PermissionGrantResult.PERMISSION_GRANT: InitPlugin(); break; case AndroidUtils.PermissionGrantResult.PERMISSION_DENY: if (AndroidUtils.ShouldShowRequestPermissionRationale(AndroidUtils.PERMISSION_CAMERA)) { //未能取得权限 //必须显示FIXME说明用对话框等 } break; case AndroidUtils.PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN: break; } })); } else { InitPlugin(); } yield break; }
//-------------------------------------------------------------------------------- /** * プラグインを初期化 * パーミッションの確認を行って取得できれば実際のプラグイン初期化処理#InitPluginを呼び出す */ private IEnumerator Initialize() { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}Initialize:"); #endif if (AndroidUtils.CheckAndroidVersion(28)) { yield return(AndroidUtils.GrantCameraPermission((string permission, AndroidUtils.PermissionGrantResult result) => { #if (!NDEBUG && DEBUG && ENABLE_LOG) Console.WriteLine($"{TAG}OnPermission:{permission}={result}"); #endif switch (result) { case AndroidUtils.PermissionGrantResult.PERMISSION_GRANT: InitPlugin(); break; case AndroidUtils.PermissionGrantResult.PERMISSION_DENY: if (AndroidUtils.ShouldShowRequestPermissionRationale(AndroidUtils.PERMISSION_CAMERA)) { // パーミッションを取得できなかった // FIXME 説明用のダイアログ等を表示しないといけない } break; case AndroidUtils.PermissionGrantResult.PERMISSION_DENY_AND_NEVER_ASK_AGAIN: break; } })); } else { InitPlugin(); } yield break; }