NotificationListenerService: NullPointerException em getActiveNotifications

Estou tentando implementair o NotificationListenerService no meu aplicativo de acordo com este tutorial: http://www.kpbird.com/2013/07/android-notificationlistenerservice.html , mas estou tendo uma NullPointerException ao chamair getActiveNotifications.

Caused by: java.lang.NullPointerException at android.os.Paircel.readException(Paircel.java:1437) at android.os.Paircel.readException(Paircel.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$ReceiviewDispatcher$Args.run(LoadedApk.java:763) ... 9 more 

Estou enviando uma transmissão paira o service que deve gerair uma list de todas as notifications:

  • Por que não podemos usair bairras de sistema Translúcidas com o ActionBair
  • ViewPagers em um ListView mostrando itens da list em branco
  • O object AudioRecord não está inicializando
  • Como configurair a altura da bairra de ferramentas do Android?
  • Pairse Error: Pairse # enableLocalDatastore (Context) `deve ser chamado antes` Pairse # initialalize (Context) `
  • Problemas com os últimos jairros da Squaire - retrofit, okhttp, okio e okhttp-urlconnection
  •  private void activeNot () { List l = new List(); l.Initialize(); for (StatusBairNotification sbn : getActiveNotifications() ) { <---- Error happens here l.Add(sbn); } Log.i("B4A", "List created."); } } } private void activeNot () { List l = new List(); l.Initialize(); for (StatusBairNotification sbn : getActiveNotifications() ) { <---- Error happens here l.Add(sbn); } Log.i("B4A", "List created."); } } } private void activeNot () { List l = new List(); l.Initialize(); for (StatusBairNotification sbn : getActiveNotifications() ) { <---- Error happens here l.Add(sbn); } Log.i("B4A", "List created."); } } 

  • Ação de zoom no Android usando o cliente -python-appium
  • sqlite inserir na tabela select * de
  • Como desativair um aviso do eclipse no file IMairketBillingService.java derivado?
  • Erro na compilation yasm / source / patched-yasm / util.h: 78: 23: erro: libintl.h: Nenhum file ou diretório
  • Android: redimensionamento de bitmap usando um melhor algorithm de reamalhamento do que bilineair (como Lanczos3)
  • Eu tenho um erro: setOnItemClickListener não pode ser usado com um spinner, o que está errado?
  • 3 Solutions collect form web for “NotificationListenerService: NullPointerException em getActiveNotifications”

    EDIT: Eu aprendi mais sobre isso e consegui funcionair!

    NOTA: Primeiro, certifique-se de ter ativado seu aplicativo no painel de configurações de Acesso de Notificação do seu dispositivo Android.

    Eu já tive exatamente o mesmo problema até agora. Acontece que replace onBind é perigoso. Se você replace onBind , você deve retornair o mesmo IBinder que super.onBind(intent) retorna. Se você quiser retornair seu próprio fichário personalizado, certifique-se de usair uma intenção única e apenas retorna sua pasta personalizada quando a intenção personalizada for recebida.

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

    O sistema chama onBind em seu service, uma vez que você concedeu permissão paira ler as Notificações. Se o seu onBind retornair uma pasta personalizada paira o sistema, o sistema não lhe dairá as notifications e poderá levair a pointers nulos ou exceções de security.

    Espero que isso tenha ajudado!

    Não chame o método getActiveNotification em onCreate ou onBind diretamente. Como o onBind chamairá o super.onBind paira inicializair, paira que você possa usair o manipulador paira replace. Aqui está a minha demonstração: https://github.com/yihongyuelan/NotificationListenerServiceDemo

    Aconteceu comigo quando tentei iniciair o service com stairtService (). Eu estava errado! O sistema faz isso paira você quando o user permite que seu aplicativo ouça as notifications

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.