使用setFullScreenIntent()通知BigTextStyle自动打开Activity

时间:2015-06-05 06:18:44

标签: android push-notification android-notifications

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

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

所以有两个代码

  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());
    

2 个答案:

答案 0 :(得分:3)

  

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

     

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

     

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

     

<强>参数

     

意图:即将发布的意图。

     

highPriority:传递   true将导致发送此通知,即使是其他通知   通知被抑制。

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

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

答案 1 :(得分:0)

将setFullScreenIntent和setContentIntent传递给不同的待处理意图。

为我工作。点击Notif将工作,自动启动将停止