오디오나 동영상을 처리하는 미디어 앱을 빌드할 때는 확인하는 것이 좋습니다. 이 알림에 다음과 같은 중요한 기능을 제공합니다.
- 알림 우선순위 지정
- 닫을 수 없음
- 벨소리에 오디오 속성 사용
NotificationChannel.Builder
를 사용하여 알림 채널 두 개를 설정합니다.
수신 전화와 진행 중인 통화에 사용할 수 있습니다.
internal companion object {
const val TELECOM_NOTIFICATION_ID = 200
const val TELECOM_NOTIFICATION_ACTION = "telecom_action"
const val TELECOM_NOTIFICATION_INCOMING_CHANNEL_ID = "telecom_incoming_channel"
const val TELECOM_NOTIFICATION_ONGOING_CHANNEL_ID = "telecom_ongoing_channel"
private val ringToneUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)
}
모든 위치에 알림을 표시하고 수신 알림 채널의 중요도를 높음으로 설정하세요.
val incomingChannel = NotificationChannelCompat.Builder(
TELECOM_NOTIFICATION_INCOMING_CHANNEL_ID,
NotificationManagerCompat.IMPORTANCE_HIGH,
).setName("Incoming calls")
.setDescription("Handles the notifications when receiving a call")
.setVibrationEnabled(true).setSound(
ringToneUri,
AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setLegacyStreamType(AudioManager.STREAM_RING)
.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE).build(),
).build()
활성 통화만 중요도를 기본값으로 설정해야 합니다. 사용 수신 전화에 대한 알림을 허용하도록 수신 전화 스타일을 따릅니다. 닫을 수 없습니다.
val ongoingChannel = NotificationChannelCompat.Builder(
TELECOM_NOTIFICATION_ONGOING_CHANNEL_ID,
NotificationManagerCompat.IMPORTANCE_DEFAULT,
)
.setName("Ongoing calls")
.setDescription("Displays the ongoing call notifications")
.build()
수신 전화 중에 사용자 기기가 잠기는 사용 사례를 해결하려면 다음을 따르세요. 전체 화면 알림을 사용하여 사용자가 전화를 받습니다.
// on the notification
val contentIntent = PendingIntent.getActivity(
/* context = */ context,
/* requestCode = */ 0,
/* intent = */ Intent(context, TelecomCallActivity::class.java),
/* flags = */ PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE,
)
자세한 내용은 통화 앱을 위한 통화 스타일 알림 만들기를 참고하세요.
CallStyle
를 사용하여 전화 알림을 다른 유형의 알림과 구별
있습니다.