¿Cómo encontrar qué aplicaciones están permitidas en "Notificaciones de aplicaciones prioritarias" dentro de la configuración No molestar?

Estoy intentando programar para saber para qué aplicaciones la configuración de no molestar se pasa por alto excepcionalmente.

Introduzca aquí la descripción de la imagen

Hasta ahora, estoy utilizando el siguiente código para comprobar si el teléfono está configurado en modo No molestar o no:

public static boolean isDnDModeEnabled(Context context) { if(Build.VERSION.SDK_INT <23) return false; try { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); int filterValue = notificationManager.getCurrentInterruptionFilter(); switch(filterValue) { case NotificationManager.INTERRUPTION_FILTER_ALL : Log.d("DND","Interruption filter all"); break; case NotificationManager.INTERRUPTION_FILTER_ALARMS : Log.d("DND","Interruption filter alarms"); break; case NotificationManager.INTERRUPTION_FILTER_PRIORITY : Log.d("DND","Interruption filter priority"); break; case NotificationManager.INTERRUPTION_FILTER_UNKNOWN : Log.d("DND","Interruption filter unknown"); break; case NotificationManager.INTERRUPTION_FILTER_NONE : Log.d("DND","Interruption filter none"); break; } if(filterValue == NotificationManager.INTERRUPTION_FILTER_ALL) return false; else if(filterValue == NotificationManager.INTERRUPTION_FILTER_PRIORITY) { //Logic based on which apps are allowed as priority return true; //or false } else return true; } catch(Exception e) { return false; } } 

Cuando hago clic en la pestaña Noticies de la aplicación Priority , obtengo una lista de todas las aplicaciones instaladas para las que tengo que elegir qué aplicaciones permitir como excepciones de prioridad.

Mi pregunta es cómo obtener mediante programación la lista de aplicaciones que están permitidas como excepciones de prioridad para el modo No molestar y, por tanto, definir la lógica sustituir el comentario en el código anterior? Cualquier solución sería muy apreciada.

2 Solutions collect form web for “¿Cómo encontrar qué aplicaciones están permitidas en "Notificaciones de aplicaciones prioritarias" dentro de la configuración No molestar?”

Está buscando una forma de determinar qué aplicaciones del sistema tienen una importancia de Notification.IMPORTANCE_MAX de Notification.IMPORTANCE_MAX y, lo siento, pero esto no es posible por una aplicación que no sea del sistema. Necesita tener acceso al INotificationService para que pueda llamar a getImportance(packageName) . Vea la fuente de Notification Manager, pero está protegido por un cheque que garantiza que es una aplicación del sistema o la aplicación cuyo paquete ha pasado así que la reflexión está fuera …

Google permite que una aplicación obtenga su propia importancia de notificación a través de NotificationManager con getImportance() ( vea docs ), pero no puede llamarla con un paquete arbitrario.

La otra respuesta aquí hace referencia a la comprobación de la fuente de la aplicación de configuración del sistema y eso es exactamente lo que hice y, después de un rato de rastreo a través del código, descubrí cómo determinar qué aplicaciones deben aparecer en el "Overrides Do Not Disturb" menú Por este código aquí que me llevó por el camino de descubrir cómo podríamos determinar la IMPORTANCE_*

Lo siento hombre, pero las sugerencias hechas por el otro contestador tampoco van a funcionar porque son incorrectas (packages.xml no tiene la información) o van a requerir root que no es confiable en todos los dispositivos.

Puedes intentar seguir las cosas (algunas de estas cosas pueden necesitar acceso de privilegio):

  1. Descargue el código fuente de la aplicación de configuración y compruebe cómo las aplicaciones de configuración reciben la lista.
  2. Analizar paquetes.xml.Por lo general, mucha información sobre las aplicaciones se almacena allí.
  3. Compruebe si la lista está almacenada en settings.db
  • Android GCM: no obtener el token de registro en el método onCreate ()
  • Icono de acción de notificación de Android Tamaños en diseño de material
  • Android: la notificación deja de actualizarse una vez que se ha actualizado durante un determinado número de veces en Kit-Kat
  • ¿Cómo hacer la notificación en android?
  • Cómo suprimir la notificación en la pantalla de bloqueo en Android 5 (Lollipop), pero dejarlo en el área de notificación?
  • Android Lollipop - efecto de rizo en la notificación
  • La notificación push funciona incorrectamente cuando la aplicación está en segundo plano o no se está ejecutando
  • Eventos de captura de Android en la notificación (prensa larga)
  • Parse.com - Sonido personalizado de notificación push de Android
  • Cómo corregir: android.app.RemoteServiceException: Notificación incorrecta enviada desde el paquete *: No se pudo crear el icono: StatusBarIcon
  • Haga clic en notificación para ingresar mi aplicación en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.