当前位置: 首页 > 面试题库 >

NotificationListenerService:getActiveNotifications上的NullPointerException

钱嘉致
2023-03-14
问题内容

我正在尝试根据此教程在我的应用程序中实现NotificationListenerService:http : //www.kpbird.com/2013/07/android-
notificationlistenerservice.html
,但是调用getActiveNotifications时出现NullPointerException。

Caused by: java.lang.NullPointerException
at android.os.Parcel.readException(Parcel.java:1437)
at android.os.Parcel.readException(Parcel.java:1385)


at android.app.INotificationManager$Stub$Proxy.getActiveNotificationsFromListener(INotificationManager.java:500)
at android.service.notification.NotificationListenerService.getActiveNotifications(NotificationListenerService.java:149)
at com.rootsoft.rsnotificationservice.RSNotificationService.activeNot(RSNotificationService.java:85)
at com.rootsoft.rsnotificationservice.RSNotificationService.access$0(RSNotificationService.java:81)
at com.rootsoft.rsnotificationservice.RSNotificationService$1.onReceive(RSNotificationService.java:105)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:763)
... 9 more

我正在向该服务发送广播,该广播应生成所有通知的列表:

private void activeNot () {
    List l = new List();
    l.Initialize();

    for (StatusBarNotification sbn : getActiveNotifications() ) { <---- Error happens here
        l.Add(sbn);
    }

    Log.i("B4A", "List created.");


    }
}

问题答案:

编辑:从那以后我就了解了更多,并使它正常工作!

注意:首先,请确保已在Android设备的“通知访问设置”窗格中启用了您的应用程序。

直到现在我都遇到了同样的问题。事实证明,覆盖onBind是危险的。如果覆盖onBind,则必须返回与之相同的IBinder
super.onBind(intent)。如果要返回自己的定制活页夹,请确保使用唯一的意图,并且仅在收到定制意图时才返回定制活页夹。

@Override
public IBinder onBind(Intent intent)
{
    if (intent.getAction().equals("custom_intent"))
    {
        return customBinder;
    }
    else
    {
        return super.onBind(intent);
    }
}

一旦您授予服务读取通知的权限,系统就会在您的服务上调用onBind。如果您的onBind将自定义绑定程序返回到系统,则系统将不会向您发送通知,并可能导致Null
Pointer或Security Exception。

希望这对您有所帮助!



 类似资料:
  • 我试图根据以下教程在应用程序中实现NotificationListenerService:http://www.kpbird.com/2013/07/android-NotificationListenerService.html,但在调用GetActiveNotifications时出现了NullPointerException。 我正在向服务发送广播,该服务将生成所有通知的列表:

  • 问题内容: 我在课堂上有这种方法(不活动)- 但是当我从其他活动中调用此方法时,我会在线获取NullPointerException- 这是我的LogCat- 我知道以前曾问过这种类型的问题,但给出的解决方案没有用。关于如何解决它的任何想法? 编辑 构造函数- 和类- 问题答案: 由于不是活动的类正在触发NullPointerException,因为它没有获取上下文来打开数据库。 使用上下文打开数

  • 我正在创建一个验证字段的服务。如果该字段不符合我的规则,我会抛出一个ResourceBusinessException,这是我创建的一个类,用于处理不可处理的实体。但是,当抛出此异常时,Spring在类AbstractMessageConverterMethodProcessor上抛出NullPointerException。 首先,我的Spring版: } 我的ResourceBusinessE

  • Animal.java 我为它创建了以下自定义断言: AnimalAssert.java 编辑:基于第一个答案(cglib需要一个),我用一个no arg构造函数更新了动物类,但是抛出了相同的异常

  • 我的应用程序一直在许多Android平台上报告这个问题(4.1、4.0.4、2.3.6.…)。但我无法在我的手机上复制这个问题。我已经在Google上搜索了这个问题,但堆栈跟踪似乎与我的不一样。

  • 我有一台带有Intel CPU的Windows机器(在引导菜单上启用VMX)。我使用VirtualBox在上面运行Ubuntu Guest。我在上面运行qemu,以运行另一个Guest OS,使用kvm(选项)。 我在尝试插入kvm-intel模块时收到以下错误: 我已经检查了来宾操作系统中的vpx标志,但我也没有看到 有没有办法在来宾Ubuntu操作系统中启用kvm支持,以便我可以在Ubuntu