2013-08-09 1 views
1

Ive는 새로운 notificationlistenerservice 클래스 사용에 대한 예제를 발견했지만 알림 게시 이벤트를 듣지 못하는 문제가 있습니다.통지 청취자 서비스가 게시 이벤트를 수신하지 못합니까? [api 18]

내가 찾는 예는 내 목표에 꼭 필요한 GUI 수신기와 브로드 캐스트 수신기를 사용하고 있습니다.

메신저 적어도 이것으로 토스트 알림을 시작하려하지만 아무 것도 얻지 못합니다. 응용 프로그램에서 알림을 수신하고 알림을 사용할 수 있는지 확인했습니다.

아무 것도 없습니까?

//listen for new notifications? 
@Override 
public void onNotificationPosted(StatusBarNotification sbn) { 
    Toast.makeText(getApplicationContext(), sbn.getPackageName().toString(), 1).show(); 
    Toast.makeText(getApplicationContext(), "anything? anything? please?", 1).show(); 

} 

//listen for the removal of the notities 
@Override 
public void onNotificationRemoved(StatusBarNotification sbn) { 
    //uhh not done yet 
} 

//prepare 
public void onCreate() { 
    super.onCreate(); 

    //ongoing notification test, is this needed for notification listeners? 
    NotificationManager notificationManager; 
    Notification myNotification; 

    Context context = getApplicationContext(); 

    myNotification = new Notification.Builder(context) 
     .setContentTitle("NotifyWake") 
     .setSmallIcon(R.drawable.ic_notification_open) 
     .setOngoing(true) 
     .build(); 

    notificationManager = (NotificationManager)getSystemService(context.NOTIFICATION_SERVICE); 
    notificationManager.notify(1, myNotification); 
    //end ongoing notification 

} 

답변

0

알아 낸 바에 따르면 게시/제거 된 일정에서 어떤 것을 내리기 위해 스레드 또는 브로드 캐스트 된 메서드를 만들어야합니다. 토스트와 같은 것들은 쓰레드 에러를 일으키고 자동으로 실패하기 때문에 작동하지 않습니다. (로그 캡에 기록되어 있습니다)

그래서 간단한 해결책은 broadcastreceiver를 확장하고 그 메소드에 heavy lifting과 gui stuff를 전달하는 것입니다.

관련 문제