Почему гадость с отражением?
Потому что это не часть Android SDK. Только люди, заинтересованные в создании ненадежных приложений, будут пытаться взаимодействовать с StatusBarManager
вне исходного кода Android, так как основные разработчики Android и устройства могут менять что-либо за пределами SDK, когда захотят.
Почему я не могу найти ссылку на класс StatusBarManager напрямую?
Потому что это не часть Android SDK. Есть очень много классов и методов в Android каркасных классов, которые отмечены с @hide
аннотацию, по разным причинам: нежелание взять на себя обязательство поддерживать API на неопределенный срок, «безопасность через маскировку» и т.д.
Почему не существует ли константа в классе Context для службы «statusbar»?
Потому что это не часть Android SDK. Разумеется, вы можете предоставить исправления для AOSP, чтобы StatusBarManager
был «продвинут» на тот же статус, что и другие системные службы (например, LocationManager
, NotificationManager
). Если ситуация StatusBarManager
является просто надзором после того, как SDK был создан в 2007 году, ваши исправления могут быть приняты, и вы увидите изменение в предстоящей версии Android.