안드로이드 개발 팁 #96 - 알림 권한 요청 방법

in hive-139150 •  4 days ago  (edited)

알림 권한 요청 방법

No. 96
2025. 02. 27 (목) | Written by @dorian-mobileapp

안드로이드 13(API 33, 코드명 Tiramisu)부터 앱이 알림을 받기 위해서는 알림 권한(android.Manifest.permission.POST_NOTIFICATIONS)이 필요합니다. 저번 포스트에서는 알림 권한을 부여받았는지 확인하는 방법을 알려 드렸지요. 이번 포스트에서는 알림 권한을 요청하는 방법을 보여 드립니다.

알림 권한 요청

  • 1단계: rememberLauncherForActivityResult 컴포저블 함수를 호출하여 ManagedActivityResultLauncher<String, Boolean> 객체 생성
  • 2단계: 1단계에서 생성한 객체의 launch 메소드를 호출하여 권한 요청
// 1단계
val permissionLauncher = rememberLauncherForActivityResult(
    contract = ActivityResultContracts.RequestPermission(),
    onResult = { isGranted: Boolean ->
        when (isGranted) {
            true -> {
                // 권한 허용 처리
            }
            else -> {
                // 권한 거부 처리
            }
        }
    }
)
  
// 2단계
LaunchedEffect(Unit) {
    permissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
}
코드 설명
  • rememberLauncherForActivityResult
    • 액티비티를 실행하고 결과를 받을 수 있는 런처를 상태로 관리하는 컴포저블 함수
      • 런처 타입: ActivityResultLauncher
    • 파라메터
      • contract: ActivityResultContract<I, O>
        • 실행할 액티비티에 대한 input, output가 무엇인지 정함
        • I: 액티비티 실행시 전달할 데이터의 타입
        • O: 액티비티 종료 후 받을 결과의 데이터 타입
        • 예: ActivityResultContracts.RequestPermission()
          • I: String. 확인할 권한 이름
          • O: Boolean. 권한 승인 여부
      • onResult: (O) → Unit
        • 받을 결과를 처리할 콜백 함수
        • 결과 데이터는 파라메터 O로부터 받음
    • 리턴 값
      • 액티비티를 실행할 수 있는 런처
        • 타입: ManagedActivityResultLauncher<I, O>
        • 알람 권한 요청의 경우, 권한 허용 여부를 묻는 팝업 뜸
  • permissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
    • permissionLauncher
      • 위 rememberLauncherForActivityResult 함수 호출로 리턴 받은 객체
    • launch
      • 액티비티 실행 (이번 예에서는 권한 승인을 묻는 팝업이 열림)
      • 파라메터
        • input: I
          • 위에 설명한 contract: ActivityResultContract<I, O>에 의해 String으로 결정됨
          • 설정한 값 android.Manifest.permission.POST_NOTIFICATIONS
            • 알림 권한 문자열

참고 링크


지난 안드로이드 개발 팁


Layout provided by Steemit Enhancer hommage by ayogom


Posted through the ECblog app (https://blog.etain.club)
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.


안녕하세요.
이 글은 SteemitKorea팀(@ayogom)님께서 저자이신 @dorian-mobileapp님을 응원하는 글입니다.
소정의 보팅을 해드렸습니다 ^^ 항상 좋은글 부탁드립니다
SteemitKorea팀에서는 보다 즐거운 steemit 생활을 위해 노력하고 있습니다.
이 글은 다음날 다시 한번 포스팅을 통해 소개 될 예정입니다. 감사합니다!

image.png

안녕하세요.
SteemitKorea팀에서 제공하는 'steemit-enhancer'를 사용해 주셔서 감사합니다. 개선 사항이 있으면 언제나 저에게 연락을 주시면 되고, 관심이 있으신 분들은 https://cafe.naver.com/steemitkorea/425 에서 받아보실 수 있습니다. 사용시 @응원해 가 포함이 되며, 악용시에는 모든 서비스에서 제외될 수 있음을 알려드립니다.