BroadcastReceiver上构建的Android通知未显示



我正试图在BroadcastReceiver内推送通知。到目前为止,通知还没有任何具体内容,我只是想展示一下

我从中复制了代码https://developer.android.com/training/notify-user/time-sensitive并将调用添加到NotificationManager以显示通知,但同样,什么也没发生。

广播接收机:

package codehero.twitteralarmclock.receivers
import android.app.NotificationManager
import android.app.PendingIntent
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.widget.Toast
import androidx.core.app.NotificationCompat
import codehero.twitteralarmclock.R
import codehero.twitteralarmclock.ui.main.snooze.SnoozeActivity
class AlarmBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Toast.makeText(context, "Alarm triggered", Toast.LENGTH_LONG).show()
val fullScreenIntent = Intent(context, SnoozeActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
val fullScreenPendingIntent = PendingIntent.getActivity(context, 0, fullScreenIntent, PendingIntent.FLAG_IMMUTABLE)
val notificationBuilder = NotificationCompat
.Builder(context, "0")
.setSmallIcon(R.drawable.ic_launcher_foreground)
.setContentTitle("Incoming call")
.setContentText("(919) 555-1234")
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setCategory(NotificationCompat.CATEGORY_CALL)
.setContentIntent(fullScreenPendingIntent)
val notification = notificationBuilder.build()
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(0, notification)
}
}

BroadcastReceiver内部的代码正在运行,因为Toast已显示。我不知道我是否需要其他东西,是否因为我在BroadcastReceiver中创建通知而不会触发通知。

我们非常感谢您的帮助,因为我在这里找到的所有其他答案都没有帮助。

感谢您抽出时间!

从Android 8开始,首先创建一个通知通道是必要的。如果通知频道不是首先创建的(由Channel_ID引用(,则通知将不会在Android 8及更高版本中显示。

请检查此主题:https://developer.android.com/training/notify-user/build-notification#Priority

最新更新