2014-12-13 17 views
6

Di seguito è riportato il mio codice per acquisire le notifiche. Non capisco perché lo onNotificationPosted non venga licenziato.NotificationListenerService non funziona - anche dopo aver dato il permesso

sto dando la mia app accesso notifiche da Impostazioni> Sicurezza e la onCreate da MyNotifService è anche il licenziamento, ma onNotificationPosted non è sempre licenziato.

Cosa mi manca o cosa non funziona?

Dal mio di MainActivity onCreate() funzione:

Intent intent = new Intent(this, MyNotifService.class); 
    this.startService(intent); 

Il mio codice di servizio che si estende NotificationListenerService:

@SuppressLint("NewApi") 

public class MyNotifService estende NotificationListenerService {

@Override 
public void onNotificationPosted(StatusBarNotification sbn) { 
    super.onNotificationPosted(sbn);   
    Log.v("focus", "in onNotificationPosted() of MyNotifService");  
} 

@Override 
public void onCreate() { 
    super.onCreate();  
    Log.v("focus", "in onCreate() of MyNotifService");  
} 

} 

Nel file manifesto, ho questo:

<service 
     android:name="com.mavdev.focusoutfacebook.notifications.MyNotifService" 
     android:label="@string/app_name" 
     android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" > 
     <intent-filter> 
      <action android:name="android.service.notification.NotificationListenerService" /> 
     </intent-filter> 
    </service> 
+5

FIX TROVATO: Had a avvia il telefono. Ho trovato un link in cui qualcuno ha pubblicato questo e i dettagli sul bug, se lo trovo di nuovo - pubblicherà qui. – user1406716

+0

Inizio? Intendi "restart"? – jaytj95

+0

probabilmente questo problema qui: https://code.google.com/p/android/issues/detail?id=62811 – Jareddlc

risposta

2

Sembra essere un po 'flakey, ma questa è la correzione attuale in questo caso:

@Override 
public IBinder onBind(Intent intent) { 
    return super.onBind(intent); 
} 
+1

Potresti spiegare come questo risolve il problema? È per garantire che il servizio sia effettivamente vincolante? – Paritosh

+0

Se 'onBind()' non è sovrascritto, 'super.conBind()' dovrebbe essere chiamato da solo. Come potrebbe questa differenza fare la differenza? –

+0

@SteveBlackwell Sei corretto, questa risposta non dovrebbe fare la differenza. Penso che quello che è successo è che mi sono imbattuto in un problema simile al poster e il problema era che non stavo chiamando esplicitamente il super costruttore. Supponevo che il poster escludesse questa parte del NotificationListenerService dalla domanda e avesse lo stesso problema ma non ricordo – RyPope

Problemi correlati