해당 권한은 Android 13 부터 적용되는 런타임 퍼미션이기 때문에, compileSDK를 33(Tiramishu)이나 그위 버전을 사용하신다면, 코드를 통해 권한처리 하는 부분을 추가해 주셔야 합니다.
private final ActivityResultLauncher<String> permissionResult = registerForActivityResult(
new ActivityResultContracts.RequestPermission(), new ActivityResultCallback<Boolean>() {
@Override
public void onActivityResult(Boolean isGranted) {
// Do someting()
}
}
);
private boolean hasPostNotificationPermission() {
// isAndroid13Below() 부분은 없어도 될 것으로 보임. 테스트해보시기 바람.
return isAndroid13Below() || ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.POST_NOTIFICATIONS)
== PackageManager.PERMISSION_GRANTED
}
private void requestPostNotiicationPermission() {
permissionResult.launch(Manifest.permission.POST_NOTIFICATIONS);
}
private boolean isAndroid13Below() {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU
}
private void checkPostNoficationPermissionOrSetAlaram() {
if (!hasPostNotificationPermission()) {
requestPostNotiicationPermission();
return;
}
// Do something
}
저는 개략적인 답변을 드렸고, 자세한 내용은 안드로이드 문서를 참고하시기 바랍니다.
https://developer.android.com/develop/ui/views/notifications/notification-permission