【问题标题】:Notification Badges in Android OAndroid O 中的通知徽章
【发布时间】:2017-09-01 12:41:01
【问题描述】:

我正在使用带有 Android Oreo SDK 的 Google Nexus 5x 进行测试。我在主屏幕的应用程序图标中找不到通知徽章,即使我从应用程序收到通知并且应用程序快捷方式未显示数字。以下是 sn-p:

 final NotificationManager mNotific=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

            CharSequence name="Ragav";
            String desc="this is notific";
            int imp=NotificationManager.IMPORTANCE_HIGH;
            final String ChannelID="my_channel_01";

            NotificationChannel mChannel=new NotificationChannel(ChannelID,name,imp);
            mChannel.setDescription(desc);
            mChannel.setLightColor(Color.CYAN);
            mChannel.canShowBadge();
            mChannel.setShowBadge(true);

            mNotific.createNotificationChannel(mChannel);

            final int ncode=1;

            String Body="This is testing notific";
            final Notification n= new Notification.Builder(getApplicationContext(),ChannelID)
                    .setContentTitle(getPackageName())
                    .setContentText(Body)
                    .setNumber(5)
                    .setBadgeIconType(R.mipmap.ic_launcher_round)
                    .setSmallIcon(R.mipmap.ic_launcher_round)
                    .setAutoCancel(true).build();

            for(int i=0;i<25;i++) {
                Thread.sleep(1000);
                mNotific.notify(ncode, n);
            }

【问题讨论】:

    标签: android badge shortcut android-8.0-oreo


    【解决方案1】:

    您无法自定义出现在应用启动器图标上的通知标记(圆点)的外观。但是,当您长按应用的启动器图标时,您可以自定义长按菜单的某些元素,例如您尝试过的 .setNumber(5) 会显示在那里。

    请参阅此处了解更多信息:Notification BadgesAdjusting Notification Badges

    参考.setBadgeIconType(R.mipmap.ic_launcher_round),我建议你阅读this


    ** 编辑 ** (问题被误解)

    我已经在 Nexus 5X 模拟器上测试了您的代码(没有 for 循环,只调用了一次 mNotific.notify(ncode, n);),它可以 100% 运行并显示通知点。这不是代码相关的问题。

    Nexus 5X 物理设备的本机启动器应用 (Google Now) 不支持通知点,即使您可以在设备的奥利奥设置中“打开”通知点。请参阅thisthis 链接。要在 Nexus 5X 物理设备上启用通知点,您必须安装自定义 Pixel Launcher 应用,例如 Rootless Pixel Launcher

    【讨论】:

    • 我的问题是它没有在主屏幕的应用快捷方式上显示通知徽章。我使用了“mChannel.setShowBadge(true);”在图标的角上显示点但它不起作用。因为我只能在主屏幕上看到应用程序图标。
    • 抱歉我误解了你的问题,“并且应用程序快捷方式没有显示号码”让我觉得你希望你用.setNumber(5)设置的号码会出现在通知徽章上。我已经复制粘贴了没有for 循环的代码(仅调用mNotific.notify(ncode, n) 一次),它可以100% 工作,并显示一个通知徽章。确保您正在测试的设备正在运行 Android Oreo,清除应用程序的数据(以删除所有以前创建的通知通道),删除 for 循环和 Thread.sleep(1000); 并再次测试,它应该可以工作。
    • 在我的应用程序中,我使用服务来通知通知。应用程序图标没有通知点,当我们长按应用程序图标时,我会得到像牛轧糖这样的快捷方式。不像奥利奥快捷方式那样,数字也没有显示。我检查了很多次。我的设备是 nexus 5x 和 8.0.0 版本。我唯一想要的是应用程序图标中的通知点,当我们长按图标时它应该显示我的数字
    • 好的,我在 Nexus 5X 模拟器上使用 Oreo 测试了您的代码,它可以 100% 运行。我认为您的代码没有任何问题,您可以通过在另一台设备上进行测试来验证。我认为这是您设备的启动器应用程序不支持通知点。您使用的是原生 Nexus 5X 启动器吗?如果是这样,请检查this link,您必须安装 Pixel 启动器并手动为其授予通知访问权限以启用通知点。让我知道是否有帮助,然后我会更新答案。
    • Nexus 5X 使用 Google Now 启动器应用程序,它不支持通知点,即使您的设置可能有选项,请检查this linkthis link。 “请注意,通知点仅适用于 Pixel 和 Pixel XL 手机。它们不适用于 Nexus 和 Pixel C 设备。” - 我认为这已经足够清楚了。如前所述,您需要手动安装 Pixel 启动器应用,这不是代码相关的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多