我环顾四周,发现了一些使用新的notificationlistenerservice类的例子,但是我遇到的问题甚至没有听到通知发布事件。
我发现的例子是使用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 :(得分:0)
想出来,你必须创建一些线程或广播方法来卸载发布/删除事件中的任何内容。像吐司这样的东西不起作用,因为该方法触发了一个线程错误并且无声地失败(在logcats中注明)
所以,一个简单的解决方案是扩展broadcastreceiver并将繁重的东西和gui东西传递给该方法。