Android Full Screen Intent

오리·2025년 1월 9일

Full Screen Intent란?

  • 중요한 알림을 즉시 사용자에게 전면으로 띄워야 할 때 사용하여 사용자의 즉각적인 반응을 유도
  • 일반적인 알림은 화면 상단에 간단히 표시되지만, 풀스크린 인텐트는 사용자의 주의를 끌어야 할 상황에서 화면을 가득 채우는 액티비티를 띄움

일반 인텐트와의 차이점

일반 Intent로도 화면을 띄울 수 있지만 시스템의 제약과 사용자의 빠른 반응을 고려했을 때 FullScreenIntent가 적합한 이유는 잠금 화면에서도 즉시 전면 화면을 띄우고, 포그라운드 서비스와의 결합을 통해 알림을 관리할 수 있음

사용 사례

  • 전화 알림: 사용자가 전화를 받을 때, 전화 수신 화면을 풀스크린으로 표시
  • 긴급 알림: 긴급 상황에서 중요한 알림을 화면 전체로 보여줌

동작 방식

  • 알림 클릭 시 기존의 작은 알림이 아닌 화면 전체를 차지하는 화면을 띄움
  • 기기가 잠겨 있거나, 화면이 꺼져 있을 때 알림이 표시되지 않고 바로 풀스크린 액티비티를 띄움

Full Screen Intent 사용 방법

// NotificationManager 초기화
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

// 채널 ID 설정 (필요 시)
val channelId = "my_channel_id"
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    val channel = NotificationChannel(channelId, "My Notifications", NotificationManager.IMPORTANCE_HIGH)
    notificationManager.createNotificationChannel(channel)
}

// 풀스크린 인텐트 설정
val intent = Intent(this, FullScreenActivity::class.java)
val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)

// 풀스크린 알림 생성
val notification = NotificationCompat.Builder(this, channelId)
    .setContentTitle("긴급 전화")
    .setContentText("전화가 왔습니다. 바로 받으세요!")
    .setSmallIcon(R.drawable.ic_notification)
    .setFullScreenIntent(pendingIntent, true) // 풀스크린 인텐트를 설정
    .setPriority(NotificationCompat.PRIORITY_HIGH)
    .build()

// 알림을 표시
notificationManager.notify(1, notification)

Full Screen Intent 주의 사항

  1. 긴급한 경우에만 사용
    • 풀스크린 인텐트는 전화 수신, 알람, 긴급 경고 등 사용자의 즉각적인 주의가 필요한 상황에서만 사용해야 함
    • 불필요하게 사용하면 사용자 경험을 방해할 수 있음
  2. 알림 중요도 설정
    • 알림의 중요도를 반드시 IMPORTANCE_HIGH로 설정해야 작동
    • 중요도가 낮으면 풀스크린 인텐트가 작동하지 않음
  3. Android 정책 준수
    • Android 10 이상에서는 사용자가 풀스크린 알림을 무시하거나 부정적으로 반응하면, 시스템이 이후에 풀스크린 인텐트를 제한
    • 중요한 작업(예: 전화, 긴급 경고)이 아니라면 시스템에서 알림을 무시할 가능성이 높음
  4. 권한 문제
    • 시스템 권한이나 알림 설정이 올바르지 않으면 풀스크린 인텐트가 실행되지 않을 수 있음
    • 앱이 사용자의 알림 설정을 준수하고 있는지 확인 필요
  5. 사용자 방해 최소화
    • 사용자가 기기를 사용 중일 때, 풀스크린 인텐트가 뜨면 작업이 중단될 수 있음. 꼭 필요한 경우에만 신중히 사용

⇒ 풀스크린 인텐트는 강력한 기능이지만, 남용하면 사용자 경험에 부정적인 영향을 미칠 수 있음. 꼭 필요한 경우에만 사용하고, 시스템 정책과 사용자 환경을 철저히 고려해야 함

1개의 댓글

comment-user-thumbnail
2025년 10월 28일

관련해서 앱 리젝먹고 대응 중이었는데 도움이 되었습니다!

답글 달기