Звук звонка и вибрацию необходимо воспроизводить самому.
Для отображения нотификации необходимо настроить максимальный приоритет для NotificationChannel-а, так же стоит отключить звуки и вибрацию, чтоб на звук звонка не накладывался звук уведомления
val channel = NotificationChannel(CALLS_CHANNEL_ID, name, NotificationManager.IMPORTANCE_HIGH)
channel.lockscreenVisibility = NotificationCompat.VISIBILITY_PUBLIC
channel.enableLights(false)
channel.enableVibration(false)
channel.setSound(null, null)
Так же необходимо для уведомления задать категорию CATEGORY_CALL и установить FullScreenIntent
У меня вышло вот так:
val notificationBuilder = NotificationCompat.Builder(context, CALLS_CHANNEL_ID)
.setSmallIcon(R.mipmap.logo)
.setContentTitle(title)
.addAction(
answerButtonIcon,
answerButtonText,
answerPendingIntent
)
.addAction(
decineButtonIcon,
declineButtonText,
declinePendingIntent
)
.setSound(null)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setCategory(NotificationCompat.CATEGORY_CALL)
.setCustomBigContentView(customContentView)
.setCustomHeadsUpContentView(customContentView)
.setShowWhen(false)
.setFullScreenIntent(
PendingIntent.getActivity(
context,
12345,
callActivityIntent,
PendingIntentUtil.flags(0)
), true
)
.setDeleteIntent(declinePendingIntent)
В принципе на этом все. Более подробно можно посмотреть в
исходниках телеграма