【问题标题】:Notification using setFullScreenIntent() for BigTextStyle opening Activity automatically使用 setFullScreenIntent() 通知 BigTextStyle 自动打开 Activity
【发布时间】:2015-06-05 06:18:43
【问题描述】:

我有一个非常奇怪的问题,我正在处理推送通知并且它已成功实现,但是当我在通知中使用 BigTextStyle 以使用 setFullScreenIntent() 方法在通知区域中显示长消息时,问题出现在通知打开在 PendingIntent 中设置的自动 Activity。

如果我不使用 setFullScreenIntent(),则通知不会自动打开 Activity,用户必须点击或单击通知才能打开 PendingIntent 中设置的 Activity。

所以有两个代码

  1. 如果没有 setFullScreenIntent() 工作正常并且不会自动打开 Activity:

    notification = new NotificationCompat.Builder(context)
                            .setContentTitle("Title")
                            .setContentIntent(resultPendingIntent)
                            .setContentText(message)
                            .setStyle(
                                    new NotificationCompat.BigTextStyle()
                                            .bigText(message))
                            .setSmallIcon(R.drawable.ic_launcher)
                            .setAutoCancel(true);
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                manager.notify(1, notification.build());
    
  2. 使用 setFullScreenIntent() 也可以正常工作,但会自动打开 Activity:-

    notification = new NotificationCompat.Builder(context)
                            .setContentTitle("Title")
                            .setContentIntent(resultPendingIntent)
                            .setContentText(message)
                            .setStyle(
                                    new NotificationCompat.BigTextStyle()
                                            .bigText(message))
                            .setSmallIcon(R.drawable.ic_launcher)
                            .setFullScreenIntent(resultPendingIntent, true) //Whether true or false same result
                            .setAutoCancel(true);
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
                manager.notify(1, notification.build());
    

【问题讨论】:

    标签: android push-notification android-notifications


    【解决方案1】:

    public NotificationCompat.Builder setFullScreenIntent (PendingIntent intent, boolean highPriority)

    意图启动而不是将通知发布到状态 酒吧。仅用于要求极高优先级的通知 用户的即时关注,例如来电或 用户已明确设置为特定时间的闹钟。如果 此设施用于其他用途,请给用户一个 关闭它并使用正常通知的选项,因为这可以是 极具破坏性。

    在某些平台上,系统 UI 可能会选择显示提示 通知,而不是启动此意图,而用户 使用设备。

    参数

    intent:待启动的意图。

    highPriority: 通过 true 将导致发送此通知,即使其他 通知被禁止。

    找到here。如您所见,它立即启动了意图。我真的不知道你想在什么情况下使用setFullScreenIntent()

    在顶部显示静态通知时,通知不会自动展开(可以是带有 wifi、蓝牙和声音控制的自定义栏)

    【讨论】:

    • 我已经阅读了 android 文档,并在代码中指定了我使用 true 或 false 的打开活动。每当通知显示在通知区域中时,我都想要扩展通知视图。还有什么,我读过关于 InboxStyle 但它也不会自动扩展。用户必须拖动通知消息来展开它。
    • @Clairvoyant 好的,我不太确定你想要什么。通知消息在顶部时会自动展开。否则不会展开。你想要棒棒糖的新 HeadsUp 吗? (您可以在屏幕顶部看到消息,而不仅仅是在状态栏中)
    • 不是抬头消息。当通知区域中显示任何通知时,该通知的默认属性不会展开。我希望它在通知区域中显示时展开
    • @Clairvoyant 你有某种静态通知吗? (例如 wifi 或音乐播放器的快速控制或类似的东西)。导致新通知的默认值被扩展。无法修改此行为。它不会自动扩展的唯一方法是当您在其上方有静态通知之类的东西时。
    • @Clairvoyant 在模拟器上尝试通知。您会看到它自动展开。这是默认行为,一直都是这样。
    【解决方案2】:

    使用不同的待处理意图传递 setFullScreenIntent 和 setContentIntent。

    为我工作。单击通知将起作用并且自动启动将停止

    【讨论】:

      猜你喜欢
      • 2020-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多