带有大文本的通知消息

时间:2018-03-13 10:35:01

标签: android

我正在构建一个服务,以便在智能手机锁定时向用户发送一些通知。

如果我尝试启动我的应用程序,我没有任何问题,我可以看到此消息通知但我无法阅读所有文本。

这是我能看到的: enter image description here

正如您所看到的,第一条消息是:

  

AttivitàInsufficiente   Svolgialpiùprestol'attivitàfisicaPallavolo! ! Clicca su questa notifica per avviare l'esercizio ...

但我只能看到:

  

AttivitàInsufficiente   Svolgialpiùprestol'attivitàfisicaPallavolo! ! Clicca su ..

正如您所见,文字已被删除。

现在是我用来发送通知消息的代码:

void readNotifications(){
        List<NotificationMessage> messages = db.getAllNotificationMessages();

        for (NotificationMessage messageCurr:messages) {
            NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getBaseContext());

            if(messageCurr.getTypeId() == NOTIFICATION_GREEN) {
                mBuilder.setSmallIcon(R.drawable.notification_green);
                mBuilder.setContentTitle("Continua cosi!");
            }
            else {
                mBuilder.setSmallIcon(R.drawable.notification_red);
                mBuilder.setContentTitle("Attività insufficiente");
            }

            mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(messageCurr.getMessage()));
            mBuilder.setContentText("Svolgi al più presto l'attività fisica Pallavvolo ! Clicca su questa notifica per avviare l'esercizio..." );

            NotificationAction currAction = db.getNotificationActionById(messageCurr.getActionId());
            if(currAction != null){
                //lego la action
                String[] separated = currAction.getActivityName().split("-");
                boolean isNewActivity = (separated[0].equals(NEW_ACTIVITY_START));
                int idAction = Integer.valueOf(separated[1]);
                Intent resultIntent = new Intent(getApplicationContext(), (isNewActivity) ? InsertNewActivity.class : ManageActivity.class);
                Bundle b = new Bundle();
                if(isNewActivity)
                    b.putInt(PAR_NOTIFICATION_EXERCISEID, idAction);
                else
                    b.putInt(ActivitiesFragment.PAR_ACTIVITY_ID, idAction);

                resultIntent.putExtras(b);

                PendingIntent resultPendingIntent =
                        PendingIntent.getActivity(
                                getBaseContext(),
                                new Random().nextInt(),
                                resultIntent,
                                PendingIntent.FLAG_UPDATE_CURRENT,
                                b
                        );
                mBuilder.setContentIntent(resultPendingIntent);

            }

            NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            // notificationID allows you to update the notification later on.
            mNotificationManager.notify(messageCurr.getId(), mBuilder.build());

            //imposto la notifica come letta
            messageCurr.setEnabled(false);
        }
    }

这是NotificationAction.java:

public class NotificationAction {
    private int id;
    private String activityName;
    private boolean enabled;

    public boolean isEnabled() {
        return enabled;
    }

    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getActivityName() {
        return activityName;
    }

    public void setActivityName(String activityName) {
        this.activityName = activityName;
    }
}

3 个答案:

答案 0 :(得分:0)

您可以通过以下链接获得解决方案:

https://tips.androidhive.info/2015/04/android-showing-push-notification-in-multiline/

http://sudeeprana.com/expand-android-notification-text-to-full-length/

Android 2.3.3使用旧的通知而不进行扩展。您必须使用较短的文本,剪切文本(并在用户点击时显示完整文本),或者如果您在Android 4.1或更早版本中显示通知,则必须调整文本。

扩展通知仅适用于Android 4.1,请在此处阅读: https://developer.android.com/guide/topics/ui/notifiers/notifications.html

答案 1 :(得分:0)

转换这些:

> mBuilder.setStyle(new
> NotificationCompat.BigTextStyle().bigText(messageCurr.getMessage()));
>             mBuilder.setContentText("Svolgi al più presto l'attività fisica Pallavvolo ! Clicca su questa notifica per avviare
> l'esercizio..." );

为:

mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText("Svolgi al più presto l'attività fisica Pallavvolo ! Clicca su questa notifica per avviare l'esercizio..."));

展开时会显示全文。

答案 2 :(得分:0)

应该按原样运作。你应该放大&#34;放大&#34;用手指通知你看那里的所有文字。