【问题标题】:Listening for Notification on Android在 Android 上监听通知
【发布时间】:2011-09-15 17:04:23
【问题描述】:

关于 android 编程的通知,我有一些疑问。我已经阅读了通知管理器、通知和通知生成器,但它似乎不允许它监听通知。

我想要做的是当任何应用程序发送通知时,我将能够知道它的内容。这真的可能吗?如何做到?

【问题讨论】:

    标签: android notifications listener statusbar


    【解决方案1】:

    随着 API 级别 18 的发布,现在有一个 NotificationListenerService。 http://developer.android.com/reference/android/service/notification/NotificationListenerService.html

    【讨论】:

      【解决方案2】:

      目前没有通用的方法来拦截从其他应用程序发送的通知。

      【讨论】:

      • 感谢您的回复。来自特定应用程序的拦截通知怎么样?这可能吗?
      • 仍然没有运气:这是一个安全问题(不能出现一些不良应用程序并拦截来自另一个应用程序的通知)。请参阅groups.google.com/group/android-beginners/browse_thread/thread/… 进行更长时间的讨论。
      • 谢谢.. 但是我想知道是否可以从您自己的应用程序中侦听和读取通知?
      • 不,他们允许您做的限制是取消所有通知。您可以使用PendingIntents 和BroadcastReceivers 来监听您的通知的点击,但如果您需要跟踪通知的内容,则必须在创建通知时手动进行。
      • 我猜你可以(参见 Tasker 或类似的应用程序)。需要先在辅助功能设置中添加此应用,然后才能这样做。
      【解决方案3】:

      你可能想看看

      AccessibilityEvent

      通知类型

      通知状态改变 - 表示显示通知的事件。

      类型:TYPE_NOTIFICATION_STATE_CHANGED

      属性:

      • getEventType() - 事件的类型。
      • getClassName() - 源的类名。
      • getPackageName() - 源的包名。
      • getEventTime() - 事件时间。
      • getText() - 源子树的文本。
      • getParcelableData() - 发布的通知。
      • getText() - 提供更多上下文的文本。

      【讨论】:

        【解决方案4】:

        要在 android 中侦听所有传入通知,您需要使用 NotificationListenerService 并在清单文件中声明意图。这样你就可以获得(android.permission.BIND_NOTIFICATION_LISTENER_SERVICE)权限

        查看这篇文章以获得更好的理解和完整的代码。

        https://androidprogrammatically425516919.wordpress.com/2020/04/19/how-to-listen-whatsapp-notification-on-android-programmatically/

        【讨论】:

          猜你喜欢
          • 2012-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-07
          • 2022-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多