Wypalam powiadomienie po wysłaniu danych do FCM, gdy otrzymuję dane z powrotem powiadomienie nie ma problemu, ale nie ma żadnego dźwięku bez wibracji, nawet jeśli upewniłem się, że mój dźwięk i Vibraton są włączone w moim telefonie, nie jestem Jasne, jeśli robię coś złego, pomóż mi to rozgryźć, dziękuję.

  • Jest to mój kod klasy aplikacji, w której ustawię kanał powiadomień dla Oreo +
override fun onCreate() {
       super.onCreate()
       Timber.plant(Timber.DebugTree())
       setUpNotification()

   }

   private fun setUpNotification(){
       if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
           val notificationChannel  = NotificationChannel(
               getString(R.string.channelid),getString(R.string.channelstring),
               NotificationManager.IMPORTANCE_DEFAULT)

           val ringtone  = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
           val audioAttributes = AudioAttributes.Builder()
               .setUsage(AudioAttributes.USAGE_NOTIFICATION)
               .build()
           notificationChannel.description = "Notifications"
           notificationChannel.enableLights(true)
           notificationChannel.enableVibration(true)
           notificationChannel.lightColor = Color.BLUE
           notificationChannel.setSound(ringtone,audioAttributes)

           val notificationManager = this.getSystemService(Context.NOTIFICATION_SERVICE) as 
          NotificationManager
           notificationManager.createNotificationChannel(notificationChannel)
       }
   } 
  • To jest mój kod powiadomień
private fun FireNotification(title : String, body : String, isVibrationEnabled : Boolean, 
      notificationchannelid : String){
       
        val intent = Intent(applicationContext,MainActivity::class.java)
        val taskBuilder = TaskStackBuilder.create(applicationContext).run {
            addNextIntentWithParentStack(intent)
            getPendingIntent(1,PendingIntent.FLAG_UPDATE_CURRENT)
        }

         val vibratePattern = longArrayOf(1000L, 1000L, 1000L, 1000L)

         val notification = NotificationCompat.Builder(applicationContext, notificationchannelid)
         notification.apply {
             setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
             setContentTitle(title)
             setContentText(body)
             setContentIntent(taskBuilder)
             setSmallIcon(R.drawable.ic_baseline_notifications_active_24)
             addAction(R.drawable.default_icon,"Snooze",taskBuilder)
             addAction(R.drawable.default_icon,"Action",taskBuilder)
             priority = NotificationCompat.PRIORITY_HIGH
             if(isVibrationEnabled){
                 notification.setVibrate(vibratePattern)
             }
         }
        NotificationManagerCompat.from(applicationContext).notify(counter++,notification.build())
    } 
0
taki eddine 7 październik 2020, 19:07

1 odpowiedź

Najlepsza odpowiedź

Rozwiązaniem mojego problemu było po prostu ustawienie domyślnego dźwięku co następujące

setDefaults(NotificationCompat.DEFAULT_SOUND)

1
taki eddine 7 październik 2020, 18:01