Cómo cerrar la barra de estado / el panel de notificaciones después de hacer clic en el botón de notificación
He navegado a través de Stackoverflow y he visto que esta pregunta se ha hecho, pero no encontré ninguna solución.
Tengo una notificación personalizada con 2 botones. Quiero que el panel de la barra de estado se cierre después de presionar un botón en esa notificación, pero no sé cómo. Si presiono la notificación en sí (por lo que el ContentIntent), entonces el panel se cierra, que es lo que también quiero para mis botones.
- ¿Es posible agregar a los oyentes onclick a las vistas remotas en android
- Android remove notification (creada por mNotifyBuilder) al hacer clic
- Obtener notificaciones actuales android
- ¿Puedo anular el icono predeterminado de notificación push en android desde el icono de la aplicación hasta el icono personalizado?
- Android: Notificación que no funciona en 2.3.6 (galaxia Samsung y)
Aquí está mi código de notificación:
Notification notification = new Notification(R.drawable.icon, "Service running", System.currentTimeMillis()); notification.flags |= Notification.FLAG_ONGOING_EVENT; notification.contentIntent = openIntent; RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification_layout); contentView.setOnClickPendingIntent(R.id.button1, stopIntent); contentView.setOnClickPendingIntent(R.id.button2, addIntent); notification.contentView = contentView; notificationManager.notify(NOTIFICATION_ID, notification);
- Cómo mantener abierto el cajón de notificaciones después de hacer clic en la notificación en Android
- Crear una notificación persistente e impedir la notificación en la barra de estado
- GCM defaultSenderID
- Notificaciones diarias a ciertas horas
- Reproducir sólo notificación de sonido predeterminado (Android)
- Generador de notificaciones en android 2.3
- Cómo agregar indicadores a una notificación (notificación de barra de estado)?
- Establecer notificación en un momento específico android
Utilice los dos siguientes línea de código para contraer la barra de notificación.
Intent it = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); context.sendBroadcast(it);
Ok, he encontrado la solución. No es API pública, pero funciona (por el momento):
Object sbservice = c.getSystemService( "statusbar" ); Class<?> statusbarManager = Class.forName( "android.app.StatusBarManager" ); Method hidesb = statusbarManager.getMethod( "collapse" ); hidesb.invoke( sbservice );
Para que esto funcione
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
Es necesario
- Problema de detección de colisiones basado en píxeles con OpenGLES 2.0 bajo Android
- Navegador Android: touchcancel está siendo disparado aunque touchmove tiene preventDefault