¿Cómo puedo activar / desactivar "Mostrar notificación" mediante programación en android

Introduzca aquí la descripción de la imagen Tengo un requisito en el que necesito activar y desactivar la "Mostrar notificación" mediante programación de la información de la aplicación. Lo busqué por mucho tiempo, pero no pude conseguir la solución adecuada. ¿Es esto posible en android para activar / desactivar "Mostrar notificación" mediante programación ?. Gracias por adelantado.

No podemos activar / desactivar programaticamente la notificación. Podemos comprobar el estado de la notificación con el siguiente fragmento

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); ApplicationInfo appInfo = context.getApplicationInfo(); String pkg = context.getApplicationContext().getPackageName(); int uid = appInfo.uid; Class appOpsClass; try { appOpsClass = Class.forName(AppOpsManager.class.getName()); Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class); Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION); int value = (int) opPostNotificationValue.get(Integer.class); return ((int) checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg) == AppOpsManager.MODE_ALLOWED); } catch (ClassNotFoundException | NoSuchMethodException | NoSuchFieldException | InvocationTargetException | IllegalAccessException ex) { Utils.logExceptionCrashLytics(ex); } // checked } else { // unchecked } 

Tendría que mantener una bandera booleana y agregar un cheque antes de publicar una notificación desde su aplicación. Guarde ese indicador booleano en SharedPreferences. Una vez que el usuario o su aplicación inhabilite / active las notificaciones, haga que se reflejen en SharedPreferences.

Además, puede hacer una clase de utilidad para publicar notificaciones para que no tenga que agregar un cheque en muchos lugares diferentes.

 public class NotificationUtil { public static void showNotification( Context context, int notificationId, int iconId, Class parentStackClass, String notificationTitle, String notificationText ) { boolean showNotification = PreferenceManager .getDefaultSharedPreferences(context) .getBoolean("SHOW_NOTIFICATION", true); if (!showNotification) return; android.support.v4.app.NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) .setSmallIcon(iconId) .setContentTitle(notificationTitle) .setContentText(notificationText); Intent resultIntent = new Intent(context, parentStackClass); TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); stackBuilder.addParentStack(parentStackClass); stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent( 0, PendingIntent.FLAG_UPDATE_CURRENT ); mBuilder.setContentIntent(resultPendingIntent); NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(notificationId, mBuilder.build()); } } 

Puede guardarlo en SharedPreferences y cada vez que desee mostrar una notificación, puede comprobarlo.

  • Import android.support no se puede resolver
  • El sonido de notificación no se reproduce cuando la pantalla del dispositivo está bloqueada
  • Implementar la notificación de expandir y contraer Android
  • Ejecutar código cuando se cancela la notificación de Android
  • Crear notificación cada día
  • La Notificación de Android reinicia la aplicación pero desea continuar
  • GCM 3.0 - gcm no muestra automáticamente la notificación con el parámetro de notificación
  • Cambiar el fondo del botón en las vistas remotas en la barra de notificación
  • ¿Cuál es la diferencia entre: notification.flags y notification.defaults?
  • ¿Existe una biblioteca de compatibilidad para / way para usar NotificationBuilder en Gingerbread y abajo?
  • Quitar u ocultar la barra de notificaciones en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.