실시간 업데이트는 중요한 업데이트의 요약을 제공하므로 사용자가 앱을 열지 않고도 진행 상황을 추적할 수 있습니다. 사용자가 실시간 업데이트 알림을 일시적으로 닫거나 표준 알림으로 강등할 수 있지만 시스템은 실시간 업데이트 알림을 승격합니다. 승격된 알림은 알림 창 상단과 잠금 화면, 상태 표시줄의 칩을 비롯한 시스템 화면에 더 눈에 띄게 표시됩니다. 실시간 업데이트 알림은 간결하고 시의적절하며 관련성 높은 정보를 제공하기 위한 알림 원칙을 따라야 합니다.
승격된 알림 카드는 다음과 같은 모양 특성을 갖습니다.
- 기본적으로 펼쳐짐
- 접을 수 없음
알림이 실시간 업데이트로 분류되려면 다음 요구사항을 충족해야 합니다.
- 표준 스타일,
BigTextStyle,CallStyle,ProgressStyle또는MetricStyle이어야 합니다. - Android 매니페스트에서 다음 비런타임 권한을 요청해야 합니다.
android.permission.POST_PROMOTED_NOTIFICATIONS EXTRA_REQUEST_PROMOTED_ONGOING또는NotificationCompat.Builder#setRequestPromotedOngoing을 사용하여 승격을 요청해야 합니다.ongoing여야 합니다 (FLAG_ONGOING_EVENT설정).contentTitle이 설정되어 있어야 합니다.- 안 됩니다 (
RemoteViews없음).customContentView - `setGroupSummary`를 사용하여 그룹의 요약이 되면 안 됩니다.
setGroupSummary setColorized를TRUE로 설정하면 안 됩니다.- 알림 채널에
IMPORTANCE_MIN이 있으면 안 됩니다.
승격 특성
다음 API는 시스템에서 알림을 승격할지 여부를 결정하는 데 도움이 됩니다.
Notification.FLAG_PROMOTED_ONGOING은 알림이 승격되는지 여부를 나타냅니다.Notification.hasPromotableCharacteristics()는 시스템에서 알림을 승격할 수 있는지 확인합니다. 이 메서드는 사용자가 설정에서 앱의 실시간 업데이트를 사용 중지했는지 여부를 고려하지 않습니다.NotificationManager.canPostPromotedNotifications()는 앱에서 승격된 알림을 게시할 수 있는지 확인합니다(예: 사용자가 설정에서 사용 설정 또는 사용 중지한 경우).Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS는 앱에서 사용자를 설정으로 보내 이 기능을 사용 설정할 수 있도록 하는 인텐트 작업입니다.
사용 기준
진행 중이고 사용자가 시작했으며 시간에 민감한 활동에 실시간 업데이트를 사용하세요.
진행 중
실시간 업데이트는 시작과 끝이 명확한 활동을 나타내야 합니다. 활동이 과거에 발생한 경우 실시간 업데이트를 사용하지 마세요. 대신 표준 알림을 사용하세요. 아직 시작되지 않은 이벤트에도 마찬가지입니다. 단, 곧 시작될 이벤트는 실시간 업데이트를 사용할 수 있습니다.
실시간 업데이트는 진행 중인 활동을 나타냅니다. 앱 기능에 대한 빠른 액세스를 제공하는 데 실시간 업데이트를 사용하지 마세요. 이렇게 하려면 앱 위젯 또는 맞춤 빠른 설정 타일을 사용하세요.
- 적절한 사용: 활성 탐색, 진행 중인 전화 통화, 활성 차량 공유 추적, 활성 음식 배달 추적
- 부적절한 사용: 광고, 프로모션, 채팅 메시지, 알림, 예정된 캘린더 일정, 앱 기능에 대한 빠른 액세스
사용자의 설정에 의해 사용 시작
대부분의 실시간 업데이트는 운동 시작, 운전 내비게이션 시작, 차량 공유 호출과 같이 사용자가 명시적으로 트리거하는 활동을 나타내야 합니다. 실시간 업데이트에 사용자 환경, 관심분야, 예정된 일정과 같은 주변 정보를 표시하지 마세요. 다른 당사자가 트리거한 활동이 실시간 업데이트를 생성하도록 허용하지 마세요.
사용자가 향후 일정 기간 동안 활동을 시작하는 작업을 실행할 수 있습니다. 예를 들어 사용자가 항공편 또는 연주회 티켓을 구매하거나, 토너먼트에 가입하거나, 시간에 민감한 이벤트에 향후 참석할 의사를 표시하는 경우입니다. 이러한 경우 예정된 이벤트가 시작될 때 실시간 업데이트를 자동으로 표시하는 것이 적절할 수 있습니다. 하지만 앱은 활동이 임박한 경우에만 트리거가 표시되도록 조정해야 합니다. 사용자가 스포츠 경기와 같은 백그라운드 이벤트를 모니터링하기 시작하겠다고 명시적으로 표시하면 해당 이벤트에 대한 실시간 업데이트를 게시하기 시작할 수 있습니다. 하지만 연결된 알림에 고정 해제 작업도 포함해야 합니다.
시간 민감도
활동 내내 사용자의 주의가 필요한 경우에만 실시간 업데이트를 표시하세요. 실시간 업데이트의 주요 사용 사례는 모니터링입니다. 사용자가 실시간 업데이트를 흘끗 보고 활동의 변화하는 상태를 주시할 때 상당한 이점을 얻을 수 있습니다.
실시간 업데이트는 실시간 업데이트와 일반 알림 간에 전환되는 활동에 적합한 경우가 많습니다. 예를 들어 사용자의 항공편 출발 몇 시간 전에 탑승권 알림을 표시하는 것은 적절하지만, 사용자가 공항이나 장소에 도착했거나 탑승이 시작된 경우와 같이 긴급한 필요가 있을 때만 알림이 실시간 업데이트가 되어야 합니다. 반대로 사용자가 지속적으로 모니터링할 필요가 없으므로 실시간 업데이트는 택배를 추적하는 데 적합하지 않습니다.
UX 관행
트래커 아이콘을 사용하여 상태를 시각화합니다. 이 아이콘은 동적으로 업데이트할 수 있습니다.
예상 도착 시간이 계산 중이거나 아직 제공되지 않는 경우 빈 상태를 표시하지 마세요. 예와 같이 시스템이 작동 중임을 나타내는 '생각 중...' 또는 '경로 재설정 중...'과 같은 활성 자리표시자 텍스트를 제공하세요.
상태 칩
상태 칩을 사용하면 알림이 표시되지 않을 때 사용자가 실시간 업데이트를 추적할 수 있습니다. setShortCriticalText 또는 setWhen을 사용하여
진행 상황 중심 알림에 관한 중요한 상태 정보를 전달하세요.
Notification.Builder#setSmallIcon을 표시합니다.
Notification.Builder#setShortCriticalText를 사용하여 절대 시간을 표시합니다.
Notification.Builder#setShortCriticalText를 사용하여 중요한 정보를 전달합니다.시간
알림이 닫히거나 업데이트되지 않는 한 시간은 알림의 수명을 위한 카운트다운을 트리거합니다. 다음 글머리 기호는 다양한 상황에서 시간이 작동하는 방식을 설명합니다.
- 시간이 2분 이상 남은 경우: 현재 시간이 오전 10시 5분이고 시간이 오전 10시 10분으로 설정되어 있으면 칩에 5분 이 표시됩니다.
- 시간이 지난 경우: 텍스트가 표시되지 않습니다.
- 시간에 크로노미터를 사용하는 경우 칩에 타이머가 표시될 수 있습니다.
setUsesChronometer및setChronometerCountdown을 참고하세요. 크로노미터 타이머는 양수인 한 칩에 표시됩니다. - 알림에 시간이 표시되지 않도록 하려면
setShowWhen을FALSE로 설정하세요.
상태 칩 모양
상태 칩에는 항상 아이콘이 포함되며 선택적으로 텍스트가 포함됩니다. 칩의 최대 너비는 96dp입니다. 전체 텍스트가 칩에 맞을 수 있는 경우에만 텍스트가 표시됩니다. 텍스트는 다음 기준에 따라 표시됩니다.
- 7자 미만인 경우 전체 텍스트를 표시합니다.
- 텍스트의 절반 미만이 표시되는 경우 아이콘만 표시합니다.
- 텍스트의 절반 이상이 표시되는 경우 최대한 많은 텍스트를 표시합니다.
Wear OS
실시간 업데이트는 일부 연결된 Wear OS 기기로 브리징됩니다. 이 브리징 동작에 관한 안내와 Wear OS용 로컬 실시간 업데이트를 만드는 방법에 관한 안내는 Wear OS 실시간 업데이트 가이드를 참고하세요.
닫기
사용자는 알림 창에서 알림 표시 여부를 제어할 수 있습니다. 원치 않는 실시간 업데이트를 게시하면 사용자가 앱의 게시 권한을 취소할 수 있습니다.
사용자가 실시간 업데이트를 완전히 사용 중지하지 못하도록 하려면 사용자가 닫을 수 있는 업데이트를 게시하지 마세요. 사용자가 닫은 실시간 업데이트를 다시 게시하지 마세요. setDeleteIntent를 사용하여 닫힌 업데이트를 감지합니다.
샘플 앱을 참고하여 이러한 API를 실험해 보세요.
FAQ
질문: 진행률 표시줄 끝에 있는 흰색 점은 무엇인가요?
답변: 진행률 표시줄 끝에 있는 흰색 점은 진행률 표시줄의 끝을 시각적으로 표시합니다.
질문: 실시간 업데이트에 맞춤 알림이 지원되지 않는 이유는 무엇인가요?
답변: 맞춤 알림은 동작이 Android 버전과 기기 제조업체에 따라 크게 다르므로 일관된 테스트와 UX를 어렵게 만듭니다. RemoteViews를 사용하여 맞춤 알림을 피하세요.