我正在尝试从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
}