karteek thati
karteek thati

Reputation: 96

setFullScreenIntent is not coming to foreground in samsung Android OS 11

I am trying to show Call notification like whatsup with audio

I had implemented full screen notification for call using setFullScreenIntent and pending intents as below but in other devices I am getting notification to foreground except in Samsung device with OS 11.

var notificationBuilder: NotificationCompat.Builder? = null
            val ringUri: Uri = Settings.System.DEFAULT_RINGTONE_URI
           var contentView = RemoteViews(packageName, R.layout.call_notification_layout)
            contentView.setOnClickPendingIntent(R.id.imgCallYes, receiveCallPendingIntent)
            contentView.setOnClickPendingIntent(R.id.imgCallNo, cancelCallPendingIntent)

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
             notificationBuilder = NotificationCompat.Builder(
                applicationContext,
                CHANNEL_ID
            )
                .setSmallIcon(R.mipmap.ic_launcher)
                 .setContent(contentView)
                 .setCategory(NotificationCompat.CATEGORY_CALL)
                .setPriority(NotificationCompat.PRIORITY_MAX)
                .setAutoCancel(true) 
                .setSound(ringUri)
                 .setFullScreenIntent(callDialogPendingIntent, true)
            val notificationChannel = NotificationChannel(
                CHANNEL_ID,
                "My Notifications",
                NotificationManager.IMPORTANCE_HIGH
            )
            val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
            // Configure the notification channel.
            val att = AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
                .build()
            notificationChannel.setSound(ringUri, att)
            notificationChannel.description = "body"
            notificationChannel.enableLights(true)
            notificationChannel.lightColor = Color.RED
            notificationChannel.vibrationPattern = longArrayOf(0, 1000, 500, 1000)
            notificationChannel.enableVibration(true)
            notificationManager.createNotificationChannel(notificationChannel)
        } else {
             notificationBuilder =
                NotificationCompat.Builder(applicationContext, CHANNEL_ID)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setContent(contentView)
                    .setAutoCancel(true)
                    .setCategory(NotificationCompat.CATEGORY_CALL)
                    .setPriority(NotificationCompat.PRIORITY_MAX)
                    .setSound(ringUri)
                    .setFullScreenIntent(callDialogPendingIntent, true)
        }

        var incomingCallNotification: Notification? = null
        if (notificationBuilder != null) {
            incomingCallNotification = notificationBuilder.build()
        }
        startForeground(NOTIFICATION_ID, incomingCallNotification)

Upvotes: 0

Views: 503

Answers (1)

karteek thati
karteek thati

Reputation: 96

IN Android 12 I added PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT for pending intent, now notification is coming

Upvotes: 1

Related Questions