不了解不同的NotificationListenerService实现

时间:2014-01-08 14:07:27

标签: android

我正在尝试捕获Android 4.3中发布的通知

我遵循了这个例子:http://www.kpbird.com/2013/07/android-notificationlistenerservice.html并且无缝地工作。

如果我将NLService替换为下面的实现,我无法理解,只要我从“设置”中的“安全”授予权限,但我的类没有创建权限,就不会创建服务中的NLService类。

public class ListenerService extends NotificationListenerService {
    private String TAG = this.getClass().getSimpleName();

    @Override
    public void onCreate() {
        super.onCreate();
        Log.i(TAG, "********  Service Created");
    }

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {

    }

    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {

    }
}

使用Manifest.xml

  <service
    android:name=".ListenerService"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
      <intent-filter>
        <action android:name="android.service.notification.NotificationListenerService"/>
      </intent-filter>
  </service>

试着知道发生了什么,我像我的班级一样离开了NLService,所以它看起来像这样:

public class NLService extends NotificationListenerService {

  private String TAG = this.getClass().getSimpleName();

  @Override
  public void onCreate() {
    super.onCreate();
    Log.i(TAG, "********  Service Created");
  }

  @Override
  public void onNotificationPosted(StatusBarNotification sbn) {

  }

  @Override
  public void onNotificationRemoved(StatusBarNotification sbn) {

  }

}

使用Manifest.xml

  <service
    android:name=".NLService"
    android:label="@string/app_name"
    android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
      <intent-filter>
        <action android:name="android.service.notification.NotificationListenerService"/>
      </intent-filter>
  </service>

同样,NLService也可以,但ListenerService

在我的最后一次尝试中,我将ListenerService重命名为NLListenerService,然后突然起作用,在启用复选框时打印“Service Created”。

有人可以解释一下这里发生了什么吗? :)

0 个答案:

没有答案