Могу ли я использовать NotificationCompat.BigTextStyle без сбоев на старых устройствах?

У меня нет устройства старше 4.1 для тестирования. Я пытаюсь проверить отправку моих уведомлений с кодом ниже. В основном это все из документации по уведомлению. Сбоит ли мой код или класс NotificationCompat обрабатывает все это для меня изящно?

В разделе "Обработка совместимости" написано:

Совместимость обработки

Не все функции уведомлений доступны для конкретной версии, хотя методы для их установки находятся в классе поддержки библиотеки NotificationCompat.Builder. Например, кнопки действий, которые зависят от расширенных уведомлений, появляются только на Android 4.1 и выше, поскольку сами расширенные уведомления доступны только на Android 4.1 и выше.

Чтобы обеспечить лучшую совместимость, создайте уведомления с NotificationCompat и его подклассами, в частности NotificationCompat.Builder. Кроме того, следуйте этому процессу при реализации уведомления:

...

Значит ли это, что если я использую класс NotificationCompat, он будет обрабатывать всю совместимость для меня?

Мой код, который меня беспокоит (потому что он использует BigTextStyle):

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext).setSmallIcon(R.drawable.ic_launcher).setContentTitle("Title")
                .setContentText(String.format("%s", message));
        // Creates an explicit intent for an Activity in your app
        Intent resultIntent = new Intent(mContext, ActivityMain.class);

        // The stack builder object will contain an artificial back stack for
        // the
        // started Activity.
        // This ensures that navigating backward from the Activity leads out of
        // your application to the Home screen.
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(mContext);
        // Adds the back stack for the Intent (but not the Intent itself)
        stackBuilder.addParentStack(MainActivity.class);
        // Adds the Intent that starts the Activity to the top of the stack
        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(resultPendingIntent);
        NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
        // Add max priority
        mBuilder.setPriority(NotificationCompat.PRIORITY_MAX);
        // Add bigTextStyle
        NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle();
        bigTextStyle.bigText(String.format("%s", message));
        mBuilder.setStyle(bigTextStyle);
        mBuilder.setAutoCancel(true);
        // mId allows you to update the notification later on.
        mNotificationManager.notify(1, mBuilder.build());

1 ответ

Вам не о чем беспокоиться.

Вспомогательный класс для генерации широкоформатных уведомлений, которые содержат много текста. Если платформа не предоставляет широкоформатные уведомления, этот метод не имеет никакого эффекта. Пользователь всегда будет видеть обычный вид уведомлений.

( NotificationCompat.BigTextStyle)

Другие вопросы по тегам