无法在通知中显示更多文本

时间:2013-10-30 15:22:00

标签: android

我正在尝试在标题栏中显示带有长文本的通知。

    PendingIntent contentIntent = PendingIntent.getActivity(context,
            NOTIFICATION_ID, notificationIntent,
            PendingIntent.FLAG_ONE_SHOT);
    NotificationManager nm = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            context);
    builder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.icon_push).setTicker(alert)
            .setContentTitle(title).setContentText(alert)
            .setWhen(System.currentTimeMillis()).setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        builder.setStyle(new NotificationCompat.BigTextStyle()
                .bigText(title));
    }
    Notification n = builder.build();
    nm.notify(id, n);

但是builder.setStyle(new NotificationCompat.BigTextStyle() .bigText(title));

setStyle似乎什么也没做,我在android 4.1上测试它

3 个答案:

答案 0 :(得分:7)

你应该删除它:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

因为它兼容,所以它会自动设置正确。

这是100%正常工作的代码:

        NotificationManager notificationManager = (NotificationManager) this
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            this);
    builder.setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("titletitletitletitletitletitletitletitletitletitletitletitle").setContentText("contentcontentcontentcontentcontentcontentcontent")
            .setWhen(System.currentTimeMillis()).setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
            .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText("bigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbig"));

    Notification notification = builder.build();
    notificationManager.notify(1, notification);

答案 1 :(得分:1)

如果您的变量名称正确且名为title的变量只是标题,则问题在于您使用的是bigText(title)而不是bigText(aReallyBigText);

答案 2 :(得分:0)

use:Notification.Builder(context).setFullScreenIntent(pendingIntent,true), 手动使通知全屏