代码之家  ›  专栏  ›  技术社区  ›  casolorz

华为5.1手机显示通知时出现奇怪的允许/拒绝问题

  •  0
  • casolorz  · 技术社区  · 6 年前

    所以事实证明,5.1版本的华为手机无法显示 MediaStyle 所以在修复这个问题的时候,我做了一个非常简单的通知测试,我问了一个奇怪的问题 Allow App Name to push messages to the notification panel .

    我没有以任何方式使用推送,事实上,下面的屏幕截图是一个应用程序,它所做的只是显示一个示例通知,其他什么都没有。

    我怎么能让它不显示出来呢?

    以下是代码:

     Notification notification = new Notification.Builder(getApplicationContext())
                    .setSmallIcon(R.drawable.ic_launcher_background)
                    .setContentTitle("Track title")
                    .setContentText("Artist - Album")
                    .setOngoing(true)
    
                    .addAction(R.drawable.ic_add_black_24dp, "fwd", pi)
                    .addAction(R.drawable.ic_android_black_24dp, "fwd", pi)
                    .addAction(R.drawable.ic_archive_black_24dp, "fwd", pi)
                    .addAction(R.drawable.ic_arrow_back_black_24dp, "fwd", pi)
                    .addAction(R.drawable.ic_aspect_ratio_black_24dp, "fwd", pi)
                    .addAction(R.drawable.ic_fast_forward_black_24dp, "fwd", pi)
                    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.vectors_525058875))
                    .setAutoCancel(false)
    
    
                    .build();
            notificationManager.notify(300, notification);
    

    这是截图。

    enter image description here

    我做错了什么?我试着采取了所有的行动,但都无济于事。去掉标题和上下文,这没用。取出大图标、自动取消、正在进行等都没有帮助。

    请注意,我没有以任何方式使用Push,这似乎与此无关。我还使用support compat库发出通知,但在这个示例中,我并不仅仅是为了确保这不是问题所在。

    0 回复  |  直到 6 年前
        1
  •  3
  •   Nick Fortescue    6 年前

    华为版本的安卓操作系统有一个定制功能,试图发现应用程序发出令人讨厌的大量通知。

    不要把注意力集中在“推”这个词上。这并不意味着“推送通知”在技术意义上来自互联网。这只是一个动词,他们可能会说“允许应用程序创建通知”或“允许应用程序引起通知”,这是相同的意思。

    无论如何,这是一个操作系统的功能,除了确保你没有垃圾邮件通知之外,你没有什么可以避免的。不幸的是,在开发和测试期间,您经常会触发 很多 并且操作系统会检测到你的应用是垃圾邮件。别担心。只要你的应用对普通用户运行良好,它就不应该发生。

        2
  •  1
  •   fangzhzh    6 年前

    这是华为定制的安卓操作系统功能。长话短说,你不能禁用它。

    我在测试我的应用程序时经常看到它。华为操作系统认为你的通知可能会惹恼最终用户(在本例中是你自己),因为它经常发生。

    你不必担心

        3
  •  0
  •   Roman Bush    6 年前

    你使用了弃用的构造函数。您必须指定频道。这样地:

    Notification.Builder builder = new NotificationCompat.Builder(context,"MyPerfectApplication")
    

    否则你会使用未知的香奈儿,可能你会尝试进入系统频道。

        4
  •  0
  •   Martin Zeitler    6 年前

    这确实是一种定制检查 EMUI ,使用户可以决定是否将这些自定义通知推送到默认通知通道, 之前 在尝试第一次推送时,曾经显示过其中一个通知。它通常从通知面板中控制华为设备上应用程序的通知设置。系统及;默认情况下,供应商应用程序被允许推送通知,因此它永远不会要求用户进行双重确认。这与过多的通知无关,因为这是一个先决条件,即使是推送这些通知,也不管数量有多大。