为什么通知不显示在 API 28 中?

我查看了 android 文档并且在 StackOverflow 中看到了所有答案,但是,我似乎无法理解为什么我试图显示的通知没有显示。每当我单击按钮时,应用程序不会显示通知,而是崩溃,有人可以告诉我为什么会发生这种情况吗?


notify_me.setOnClickListener(

            new View.OnClickListener() {

                @Override

                public void onClick(View v) {

                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {

                        NotificationChannel channel = new NotificationChannel("miscellaneous", "Hello World", NotificationManager.IMPORTANCE_HIGH);

                        channel.setDescription("Hello Brothers and Sisters");

                        NotificationManager noti = getSystemService(NotificationManager.class);

                        noti.createNotificationChannel(channel);

                    }

                }

            }

    );

这是堆栈跟踪


E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.example.test, PID: 27996

java.lang.IllegalArgumentException: Reserved id

    at android.os.Parcel.createException(Parcel.java:1970)

    at android.os.Parcel.readException(Parcel.java:1934)

    at android.os.Parcel.readException(Parcel.java:1884)

    at android.app.INotificationManager$Stub$Proxy.createNotificationChannels(INotificationManager.java:1888)

    at android.app.NotificationManager.createNotificationChannels(NotificationManager.java:577)

    at android.app.NotificationManager.createNotificationChannel(NotificationManager.java:565)

    at com.example.test.Main4Activity$1.onClick(Main4Activity.java:44)

    at android.view.View.performClick(View.java:7352)

    at android.widget.TextView.performClick(TextView.java:14177)

    at android.view.View.performClickInternal(View.java:7318)

    at android.view.View.access$3200(View.java:846)

    at android.view.View$PerformClick.run(View.java:27800)

    at android.os.Handler.handleCallback(Handler.java:873)

不负相思意
浏览 89回答 1
1回答

波斯汪

根据错误消息,您不能用作"miscellaneous"通知渠道的 ID - 该名称是专门为不以 API 26 或更高版本为目标的应用程序保留的,用于发布所有没有附加渠道的通知。您可以为您的频道使用任何其他 ID 字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java