当前位置: 首页 > 面试题库 >

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

韶弘壮
2023-03-14
问题内容

我查看了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)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7050)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
 Caused by: android.os.RemoteException: Remote stack trace:
    at com.android.server.notification.RankingHelper.createNotificationChannel(RankingHelper.java:641)
    at com.android.server.notification.NotificationManagerService$12.createNotificationChannelsImpl(NotificationManagerService.java:2585)
    at com.android.server.notification.NotificationManagerService$12.createNotificationChannels(NotificationManagerService.java:2600)
    at android.app.INotificationManager$Stub.onTransact(INotificationManager.java:292)
    at android.os.Binder.execTransact(Binder.java:739)

问题答案:

根据错误消息,您不能将其"miscellaneous"用作通知通道的ID-该名称专门为未定位API
26或更高版本的应用程序保留,用于发布未连接任何通道的所有通知。

您可以为频道使用其他任何ID字符串。



 类似资料:
  • 我正在创建一个应用程序,显示未来日期的通知。为了在将来显示通知,我使用了AlarmManager。 在我的一个活动中单击按钮,我会创建如下通知 以下是我的BootService类代码: 在测试应用程序时,我看到通知显示,问题是特定于启动手机。在上面的代码中,我通过调用LoadAlarmsFromDatabase来重新创建通知 为了处理启动时重新创建警报,我使用了BroadcastRecaver 公

  • 普通通知生成器不会在Android O上显示通知。 如何在Android 8 Oreo上显示通知? 在Android O上显示通知是否需要添加新的代码?

  • 我目前正在研究Android支持包v4 Rev 10的NotificationCompat特性。文档中说,'set contenttext()'显示通知中的第二行。对于API8到API15都是如此。但是,如果我尝试在API16中使用此方法,我的通知将错过第二行。我只看到标题,没有看到第二行。添加多行是没有问题的(使用'addline()')。 以下是我使用的NotificationCompat.B

  • 问题内容: 最近,我一直在开发此网站,并试图在其中添加超棒的字体图标,以便其可扩展。 问题是他们没有露面。 看一下HTML: 要么 我确实把样式表引用放在了头上。 我不知道为什么他们没有出现。 这里是参考: 好了,这是完整的html: 问题答案: 根据您的参考,您有: 具体来说,就是这个部分。 但是,在您的完整html下是这样的: 您是否尝试过更换与您的全HTML变成这样?

  • 我已经用ReactJS创建了一个PWA应用程序。我还实施了 Firebase 云消息传递功能,用于在设备上显示推送通知。 当我在Android手机上安装我的PWA时,我得到了正确的消息推送。 但是我的通知找不到怎么发图标 我用FirebaseAdmin SDK完成的ASP.NET核心WebApi (2.2)来触发通知。 我来自PWA的manifest.json文件看起来是正确的。(192x192

  • 问题内容: 为什么在警报出现之前没有显示该元素? jQuery 方法不应该是同步的吗? 更新: 我的行为在Windows 10的Chrome版本52.0.2743.116 m上表现出来。 问题答案: 它会同步更改样式,并且您会注意到,如果您在下一行读回该值并将其显示出来。 但是样式对象的更改会触发重新渲染请求消息到页面渲染器,并且在浏览器空闲之后(即此脚本例程结束之后)立即处理该消息。 不过,这取