概要
var tcs = new UniTaskCompletionSource<string>(); var callbacks = new PermissionCallbacks(); callbacks.PermissionGranted += _ => tcs.TrySetResult( "PermissionGranted" ); callbacks.PermissionDenied += _ => tcs.TrySetResult( "PermissionDenied" ); callbacks.PermissionDeniedAndDontAskAgain += _ => tcs.TrySetResult( "PermissionDeniedAndDontAskAgain" ); Permission.RequestUserPermission( "android.permission.POST_NOTIFICATIONS", callbacks ); var eventName = await tcs.Task;
Permission.RequestUserPermission
を使用して
Android で通知許可ダイアログを開こうとしたら
java.lang.IllegalArgumentException: Unknown permission: android.permission.POST_NOTIFICATIONS
Android 6 で上記の例外が発生してアプリが強制終了する現象に遭遇した
上記のページで紹介しているパッケージを使用して
if ( !AndroidApiLevel.IsAndroidVersion13OrHigher ) return; var tcs = new UniTaskCompletionSource<string>(); var callbacks = new PermissionCallbacks(); callbacks.PermissionGranted += _ => tcs.TrySetResult( "PermissionGranted" ); callbacks.PermissionDenied += _ => tcs.TrySetResult( "PermissionDenied" ); callbacks.PermissionDeniedAndDontAskAgain += _ => tcs.TrySetResult( "PermissionDeniedAndDontAskAgain" ); Permission.RequestUserPermission( "android.permission.POST_NOTIFICATIONS", callbacks ); var eventName = await tcs.Task;
Android 12 以下なら通知許可ダイアログを開かないようにしたら
例外が発生しなくなった