Тост не показан на Samsung Galaxy S3 (последнее обновление 4.1.2)

У меня есть тост, который отображается следующим образом:

Toast.makeText(context, "The message", Toast.LENGTH_LONG).show(); 

Я абсолютно уверен, что я показываю тост из потока пользовательского интерфейса, и могу добавить, что он работал отлично для многих устройств, включая более старые обновления Galaxy S3 , но после последнего обновления ни один из моих тостов не отображается.

Кто-нибудь еще испытал это и получил решение?

В новых Android-телефонах есть флажок «Показывать оповещения» в настройках приложения, и по какой-либо причине, если уведомления отключены, он также отключает тосты. О проблеме сообщается здесь:

http://code.google.com/p/android/issues/detail?id=35013

Но глядя на исходный код:

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/java/com/android/server/NotificationManagerService.java

Кажется, что это может быть преднамеренным:

Строка 114:

 private static final boolean ENABLE_BLOCKED_TOASTS = true; 

Линии 693-707:

 final boolean isSystemToast = ("android".equals(pkg)); if (ENABLE_BLOCKED_TOASTS && !isSystemToast && !areNotificationsEnabledForPackageInt(pkg)) { Slog.e(TAG, "Suppressing toast from package " + pkg + " by user request."); return; } 

Строка 114:

 private static final boolean ENABLE_BLOCKED_TOASTS = true; 

Поскольку OP не существует за последние 24 часа, я опубликую решение, которое было найдено в потоке разработчиков Android Google .

Проблема заключалась в том, что опция « Show Notifications для этого приложения» не была отмечена в настройках (это возможно в новых версиях Android). Это не только предотвращает показ уведомлений в панели уведомлений, но также предотвращает показ тостов.

Здесь была обнаружена ошибка.