Я новичок в SO, моя проблема заключается в отправке уведомления с изображением. Я установил плагин OneSignal на веб-сайте wordpress и создал образец приложения android. Я получаю уведомление, но без большого изображения. В Android я получаю это json в классе уведомлений.
{custom={"u":"https:my post url","i":"fe37dc8e-8e6c-4f00-9d69-a"}, alert=Kapil Sharma Show वापस आ रहा है नए मेहमान के साथ, जानिए कैसे हुआ शूट, title=My Website}
Это мой метод отображения уведомлений.
private fun sendNotification(notification: RemoteMessage.Notification?, data: Map<String, String>) {
val icon = BitmapFactory.decodeResource(resources, R.mipmap.ic_launcher)
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 notificationBuilder = NotificationCompat.Builder(this, "my_channel")
.setContentTitle(notification!!.title)
.setContentText(notification.body)
.setAutoCancel(true)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setContentIntent(pendingIntent)
.setContentInfo(notification.title)
.setLargeIcon(icon)
.setColor(Color.RED)
.setLights(Color.RED, 1000, 300)
.setDefaults(Notification.DEFAULT_VIBRATE)
.setSmallIcon(R.mipmap.ic_launcher)
try {
val picture_url = data["picture_url"]
if (picture_url != null && "" != picture_url) {
val url = URL(picture_url)
val bigPicture = BitmapFactory.decodeStream(url.openConnection().getInputStream())
notificationBuilder.setStyle(
NotificationCompat.BigPictureStyle().bigPicture(bigPicture).setSummaryText(notification.body)
)
}
} catch (e: IOException) {
e.printStackTrace()
}
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
// Notification Channel is required for Android O and above
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val channel = NotificationChannel(
"my_channel", "my_channel_name", NotificationManager.IMPORTANCE_DEFAULT
)
channel.description = "channel description"
channel.setShowBadge(true)
channel.canShowBadge()
channel.enableLights(true)
channel.lightColor = Color.RED
channel.enableVibration(true)
channel.vibrationPattern = longArrayOf(100, 200, 300, 400, 500)
notificationManager.createNotificationChannel(channel)
}
notificationManager.notify(0, notificationBuilder.build())
}
Я просто хочу отправить уведомление с изображением когда на моем сайте wordpress добавлено новое сообщение.