Android Firebase FCM Сообщение Данные получены, но не уведомлены в реальном устройстве - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть следующий код для уведомления о получении сообщения от другого пользователя. Код отлично работает в эмуляторе, но не работает на реальном устройстве в режиме отладки. Хотя сообщение получено, как обнаружено Log.d, но не уведомлено. Также я настраиваю настроенный тон, который не работает ни в эмуляторе, ни на реальном устройстве. Может ли кто-нибудь помочь:

class ***InstanceService: FirebaseMessagingService() {


@RequiresApi(Build.VERSION_CODES.N)
override fun onMessageReceived(remoteMessage: RemoteMessage) {

     val sound =  Uri.parse("android.resource://" + applicationContext.packageName +"/"+R.raw.newtone)


    if (remoteMessage.data.isNotEmpty()) {
        Log.d("MyMessage", "Inside Data")
        val intent = Intent(this, MainActivity::class.java)
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
        val pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT)
        val channelId = "Default"
        val builder = NotificationCompat.Builder(this, channelId)
            .setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.ic_new_logo))
            .setSmallIcon(R.drawable.ic_new_logo)
            .setContentTitle(remoteMessage.data["title"]).setVisibility(VISIBILITY_PRIVATE)
            .setSound(sound)
            .setContentText(remoteMessage.data["body"]).setAutoCancel(true).setContentIntent(pendingIntent).setPriority(NotificationManager.IMPORTANCE_MAX)
        val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
        {
            val attributes = AudioAttributes.Builder()
                .setUsage(AudioAttributes.USAGE_NOTIFICATION)
                .build()
            val channel = NotificationChannel(channelId, "Default channel", NotificationManager.IMPORTANCE_HIGH)
            manager.createNotificationChannel(channel)
            channel.setSound(sound, attributes)
        }
        manager.notify(0, builder.build())
        Log.d("MyMessage", "Message Data Body: " + remoteMessage.data["body"])

    }


}




override fun onNewToken(token: String) {

}


}
...