Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

388
Vistas
¿Hay alguna forma de obtener el historial de notificaciones del dispositivo?

Estoy desarrollando una aplicación de estadísticas de uso y me pregunto cómo otras aplicaciones pueden acceder al historial de notificaciones de los dispositivos .

En este momento estoy trabajando con NotificationListenerService , pero esto solo puede manejar las notificaciones nuevas recibidas, no las pasadas. Revisé el DOC de Android y encontré algunos métodos que son 'solo del sistema', como getHistoricalNotifications() , o que requieren el permiso ACCESS_NOTIFICATION .

La cuestión es que hay algunas aplicaciones que realmente pueden acceder a los datos del historial de notificaciones.

Android DOC también muestra una nueva API en Android Q llamada NotificationStats pero no está disponible en este momento.

¿Algun consejo? ¿Es esto posible de una manera no hacky?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

ActionDash muestra esto ingrese la descripción de la imagen aquí

Como mencionó, getHistoricalNotifications es una API de nivel de sistema a la que solo acceden las aplicaciones del sistema, por lo que Google Digital Wellbeing, que es una aplicación del sistema, puede mostrarlas.

Así que creo que no hay forma de obtener un historial de notificaciones para aplicaciones de terceros.

 /** * System-only API for getting a list of recent (cleared, no longer shown) notifications. * * Requires ACCESS_NOTIFICATIONS which is signature|system. */ @Override public StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count) { // enforce() will ensure the calling uid has the correct permission getContext().enforceCallingOrSelfPermission( android.Manifest.permission.ACCESS_NOTIFICATIONS, "NotificationManagerService.getHistoricalNotifications"); StatusBarNotification[] tmp = null; int uid = Binder.getCallingUid(); // noteOp will check to make sure the callingPkg matches the uid if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg) == AppOpsManager.MODE_ALLOWED) { synchronized (mArchive) { tmp = mArchive.getArray(count); } } return tmp; }
over 4 years ago · Santiago Trujillo Denunciar

0

Debe almacenar los datos de notificación de la aplicación cuando se recibe la notificación en la base de datos sql y cuando desea el historial de la notificación de la aplicación respectiva, puede obtener fácilmente todas las notificaciones al realizar una consulta en la base de datos sql.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda