Cómo cerrar la bandeja de notificación mediante programación

Quiero compartir el elemento de notificación de GCM. El botón de compartir responde a los eventos de clic y el elemento también se comparte. El único problema aquí es que el diálogo de selección de intenciones está presente debajo de la bandeja de notificación. El usuario tiene que cerrar manualmente la barra de estado y luego seleccionar la aplicación para compartir. Quiero cerrar la barra de estado mediante programación, de modo que cuando el usuario haga clic en compartir, le muestre directamente el diálogo para elegir las aplicaciones.

Me pareció que el servicio de status bar se puede utilizar para abrir / cerrar el servicio. Pero está restringido para las aplicaciones del sistema.

 private void closeNotificationTray() { Object service = mContext.getSystemService(Context.STATUS_BAR_SERVICE); Method collapse; try { Class<?> statusBarMngr = Class.forName("android.app.StatusBarManager"); if (Build.VERSION.SDK_INT >= 17) collapse = statusBarMngr.getMethod("collapsePanels"); else collapse = statusBarMngr.getMethod("collapse"); collapse.invoke(service); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } 

He utilizado el código anterior. Pero estoy recibiendo "STATUS_BAR_SERVICE no se puede resoloved" error. Y cuando agregué la permision inferior en el manifiesto:

 <uses-permission android:name="android.permission.STATUS_BAR" /> 

Estoy recibiendo, permitido sólo para las aplicaciones del sistema. No me está permitiendo usar en mi aplicación. ¿Hay alguna manera de usar el servicio de status bar o cualquier otra alternativa?

Actualizar:

He resuelto el problema anterior con sólo 2 líneas de código. No es necesario llamar a STATUS_BAR_SERVICE.

 Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); mContext.sendBroadcast(it); 

Al llamar a esta intención se cerrará automáticamente la notificación

;

Sí, este permiso "android.permission.STATUS_BAR" está disponible sólo para aplicaciones de sistema, no para aplicaciones de terceros.

Usted puede intentar debajo del método:

  1. Cree una cierta notificación pasando la intención pendiente hacia ella.
  2. Crear intención pendiente con acción como acción. Ahora usted podrá utilizar la opción de acciones.

@ Amanda Fernández puedes probar por encima del método

  • Disposición detrás de la barra de estado - Android Lollipop
  • Cerrar la barra de estado cuando se hace clic en la notificación de botón
  • Phonegap Cordova - Barra de estado negra en la parte inferior después de la pantalla completa
  • Android Material: El color de la barra de estado no cambiará
  • Problema de barra de estado de diseño de barra de herramientas de despliegue
  • Cómo crear una notificación en la barra de estado mediante un mensaje de teléfono
  • Android: la barra de estado previene la pantalla completa
  • Superpuesto por la barra de estado cuando se muestra el fragmento de diálogo, solo en Android4.4
  • Android Mostrar Actividad Título / barra de estado en la parte superior después de que esté oculto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.