NotificationListenerService

NotificationListenerService

我正在尝试从getActiveNotifications()类访问NotificationListenerService
但是它不起作用,我尝试了以下方法:

1)

    NotificationListenerService nls = new NotificationListenerService();
    activeNotifications = nls.getActiveNotifications();


2)

    activeNotifications = NotificationListener.class.getActiveNotifications();


但是对于1)我得到这个错误:


  无法实例化类型NotificationListenerService


并为2)我收到此错误:

The method getActiveNotifications() is undefined for the type Class<NotificationListenerService>


这似乎是简单的Java,但我无法使其正常工作,我在做什么错?
感谢您的任何帮助。

最佳答案

要使用NotificationListenerService,您需要创建一个自NotificationListenerService扩展的自定义类。
您不能对其进行虚假化,系统将为您完成。

将此添加到您的AndroidManifest.xml中:

    <service android:name="your.package.name.MyNLS"
        android:debuggable="true"
        android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" >
        <intent-filter>
            <action android:name="android.service.notification.NotificationListenerService" />
        </intent-filter>
    </service>


创建一个NotificationListenerService类:

public class MyNLS extends NotificationListenerService {

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {

    }

    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {

    }

}


使用以下代码将用户发送到“通知侦听器设置”:

startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"));


然后,在您的服务内部,您可以调用它以获取活动通知列表:

for (StatusBarNotification sbn : getActiveNotifications()) {
    /// do something
}

10-04 20:02