package jp.yokomark.remoteviews.app;

import android.annotation.TargetApi;
import android.os.Build;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.util.Log;
import android.widget.RemoteViews;

import java.util.List;

import jp.yokomark.remoteview.reader.RemoteViewsInfo;
import jp.yokomark.remoteview.reader.RemoteViewsReader;
import jp.yokomark.remoteview.reader.action.RemoteViewsAction;
import jp.yokomark.remoteview.reader.action.SetLaunchPendingIntentAction;
import jp.yokomark.remoteview.reader.action.SetOnClickPendingIntentAction;

/**
 * @author KeishinYokomaku
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NotificationWatcher extends NotificationListenerService {
	@Override
	public void onNotificationPosted(StatusBarNotification sbn) {
		RemoteViews views = sbn.getNotification().contentView;
		RemoteViewsInfo info = RemoteViewsReader.read(this, views);
		if (info == null)
			return;
		List<RemoteViewsAction> actions = info.getActions();
		for (RemoteViewsAction action : actions) {
			Log.v("NotificationWatcher", action.getActionName());
			if (action instanceof SetLaunchPendingIntentAction) {
				SetLaunchPendingIntentAction p = (SetLaunchPendingIntentAction) action;
				Log.v("NotificationWatcher", p.getContentIntent().toString());
			} else if (action instanceof SetOnClickPendingIntentAction) {
				SetOnClickPendingIntentAction p = (SetOnClickPendingIntentAction) action;
				Log.v("NotificationWatcher", p.getContentIntent().toString());
			}
		}
	}

	@Override
	public void onNotificationRemoved(StatusBarNotification sbn) {}
}

package jp.yokomark.remoteviews.app;

import android.annotation.TargetApi;
import android.os.Build;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.util.Log;
import android.widget.RemoteViews;

import java.util.List;

import jp.yokomark.remoteview.reader.RemoteViewsInfo;
import jp.yokomark.remoteview.reader.RemoteViewsReader;
import jp.yokomark.remoteview.reader.action.IntentContainer;
import jp.yokomark.remoteview.reader.action.RemoteViewsAction;
import jp.yokomark.remoteview.reader.action.ViewGroupAction;

/**
 * @author KeishinYokomaku
 */
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NotificationWatcher extends NotificationListenerService {
	@Override
	public void onNotificationPosted(StatusBarNotification sbn) {
		RemoteViews views = sbn.getNotification().contentView;
		RemoteViewsInfo info = RemoteViewsReader.read(this, views);
		List<RemoteViewsAction> actions = info.getActions();
		dump(actions);
	}

	@Override
	public void onNotificationRemoved(StatusBarNotification sbn) {}

	private void dump(List<RemoteViewsAction> actions) {
		for (RemoteViewsAction action : actions) {
			Log.v("NotificationWatcher", action.getActionName());
			if (action instanceof IntentContainer) {
				IntentContainer p = (IntentContainer) action;
				Log.v("NotificationWatcher", p.getContentIntent().toString());
			} else if (action instanceof ViewGroupAction) {
				ViewGroupAction v = (ViewGroupAction) action;
				RemoteViewsInfo nested = v.getNestedViewsInfo(this);
				if (nested != null) {
					Log.v("NotificationWatcher", "nested views found====");
					dump(nested.getActions());
					Log.v("NotificationWatcher", "======================");
				}
			}
		}
	}
}

Update sample project