Как обнаружить расширение строки состояния?

Мое приложение позволяет запускать другое приложение у меня. Ни один из моих действий не показывает Status Bar. Но при запуске других приложений, таких как Camera, пользователь может получить доступ к status bar Поэтому я попробовал следующий фрагмент кода для свертывания status bar Status Bar внутри службы (так что он сворачивается каждый раз, и код работает всегда).

 int currentapiVersion = android.os.Build.VERSION.SDK_INT; Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse = null; if(currentapiVersion <= 16){ collapse = statusbarManager.getMethod("collapse"); }else{ collapse = statusbarManager.getMethod("collapsePanels"); } collapse.setAccessible(true); collapse.invoke(service); 

Теперь я хочу свернуть status bar только в том случае, если пользователь пытается расширить это. Существует ли какой-либо intent filter intent или intent filter для обнаружения расширения Status bar ?

Заранее спасибо

Никакого обратного вызова нет, когда панель уведомлений перетаскивается на Android.

Это связано с тем, что приложения для Android предназначены для разработки таким образом, что панель уведомлений, выходящая и уходящая, никак не влияет на работу.

В вашей деятельности переопределите onWindowFocusChanged() и напишите приведенный ниже код.

Это использует разрешение

 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> @Override public void onWindowFocusChanged(boolean hasFocus) { try { if(!hasFocus) { Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse = statusbarManager.getMethod("collapse"); collapse .setAccessible(true); collapse .invoke(service); } } catch(Exception ex) { if(!hasFocus) { try { Object service = getSystemService("statusbar"); Class<?> statusbarManager = Class.forName("android.app.StatusBarManager"); Method collapse = statusbarManager.getMethod("collapse"); collapse .setAccessible(true); collapse .invoke(service); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ex.printStackTrace(); } } } 
Intereting Posts
Или заявление в коммутаторе / случае? Разница в поведении сборщика мусора на устройстве Android против эмулятора PopBackStack, но сохраните первый фрагмент в android Как фильтровать только изображения и видео в галерее Android? Чтение информации об использовании приложения Почему эта строка xmlns: android = "http://schemas.android.com/apk/res/android" должна быть первой в XML-файле макета? Поддерживает ли Android WebKit функцию postMessage () для межкадровой связи? Панель навигации Android, охватывающая контент для просмотра Есть ли другой платежный модуль, кроме Paypal? Конструкция обратной совместимости для дизайна материалов: colorAccent требует API уровня 21 при использовании appcompat7 Android: dividerPadding не влияет Отправка данных SMS в Android на CDMA-телефоне Не удалось найти com.google.android.maps в Eclipse Получить страницу с Facebook на общедоступной странице Android Использование layout_alignBaseline и layout_alignBottom в RelativeLayout вместе