通知侦听器 - onNotificationPosted 不起作用

Notification Listener - onNotificationPosted doesn't work

我已经尝试了所有类型的解决方案和代码,但这些解决方案中的任何一个都对我有用,但我不知道为什么。请帮助我。

我的 MainActivity 代码是:

if(isNotificationServiceEnabled())
    {
        Intent i= new Intent(this,NotificationsService.class);
        i.putExtra("command", "get_status");
        startService(i);
    }
    else
        startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));

现在我只是想检查服务是否读取了发布的通知,但从日志中我只能看到它进入 onCreate 方法但没有进入 onNotificationPosted.

这是我的服务代码 class:

public class NotificationsService extends NotificationListenerService {

@Override
public void onListenerConnected(){
    Log.d(TAG, "Connected");
}

@Override
public void onNotificationPosted(final StatusBarNotification sbn){

    Log.d(TAG,"got it");

}

我也试过广播服务的解决方案,但还是不行。

谢谢。

我找到了解决方案。在我的代码中我遇到了一些问题,但后来我在另一个项目中测试了关于通知监听器的其他代码,并且它起作用了。所以我修改了我的代码,现在它可以工作了。

关于notification lisener 您不需要启动该服务,因为当您启动该应用程序时,该服务就会启动。所以我刚刚对我的代码进行了以下更改:

主要

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(!isNotificationServiceEnabled())
    {
        startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
    }

}
@Override
protected void onDestroy() {
    super.onDestroy();
} 

而在服务中我只是把日志代码写在调试通知包中。

相反,我了解到广播仅用于在服务和我的 activity 之间交换数据,例如在文本视图中编写通知。