Как постоянно останавливать и воспроизводить уведомления?

Я хочу добиться этого:

  • Когда будильник начинает звонить, звуковой сигнал уведомления должен воспроизводиться непрерывно, пока пользователь не нажмет панель уведомлений.
  • Когда я перетаскиваю панель уведомлений, звук должен прекратить воспроизведение.

В уведомлениях есть несколько флагов, которые используются для автоматического прекращения уведомления, и должны использовать их.

  1. Notification.DEFAULT_SOUND: используется для воспроизведения звука.

2.Notification.FLAG_INSISTENT: этот флаг заставляет ваш звук звонить непрерывно, пока вы не выполнили несколько операций с уведомлением, т. Е. Перетащить панель или щелкнуть панель.

3.Notification.FLAG_AUTO_CANCEL: этот флаг используется для автоматического отмены уведомления после того, как вы его видели.

why the nastiness with reflection? 

Потому что это не часть Android SDK. Только люди, заинтересованные в создании ненадежных приложений, будут пытаться взаимодействовать с StatusBarManager вне исходного кода Android. Поскольку основные разработчики Android и устройства могут менять что-либо за пределами SDK, когда захотят.

 Why can't I find a reference to the StatusBarManager class directly? 

Потому что это не часть Android SDK. В базе Android есть много замечательных классов и методов, которые отмечены аннотацией @hide по разным причинам: нежелание фиксировать поддержку API на неопределенный срок, «безопасность безвестности» и т. Д.

 Why is there not a constant in the Context class for the "statusbar" service? 

Потому что это не часть Android SDK. Разумеется, вы можете предоставить исправления для AOSP, чтобы StatusBarManager был «повышен» до того же статуса, что и другие системные службы (например, LocationManager, NotificationManager). Если ситуация StatusBarManager является просто надзором после того, как SDK был создан в ~ 2007 году, ваши патчи могут быть приняты, и вы увидите изменения в предстоящей версии Android.

Почему я не могу найти ссылку на класс StatusBarManager напрямую?