こんにちは。
私は自作クラス「NotificationLisetener(*1)」を作り、最近までは動いていたのですがいつの間にか動かなくなりました。例えばNotification accessを切り替えてもonListenerConnected()などが呼ばれません。
一旦、何もしない「NLStest(*2)」を作り正しく動くことを確認した後、それを(*1)にコピペしたのですが動きません。
それぞれしっかりとManifestも変更して確かめました。

なぜ(*1)は動かないのでしょうか。

試したこと

  • プロジェクトをビルドし直す
  • 別のNotificationListenerを作り動くことを確認
  • Notification accessの切り替え。NLStestはちゃんと切り替わってました。

Android開発は始めたばかりなので至らないところがあると思いますがよろしくお願いいたします。

(*1)

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NotificationListener extends NotificationListenerService {

    private static final String TAG = "myDEBUG(refactor)";

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

        final int notifId = 4;

        // 通知をタップしたき起動させる設定を施す
        Intent showTaskIntent = new Intent(getApplicationContext(), MainActivity.class);
        showTaskIntent.setAction(Intent.ACTION_MAIN);
        showTaskIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        showTaskIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        PendingIntent contentIntent = PendingIntent.getActivity(
                getApplicationContext(),
                0,
                showTaskIntent,
                PendingIntent.FLAG_UPDATE_CURRENT
        );

        // ステータスバーへ表示
        Notification.Builder builder = new Notification.Builder(getApplicationContext());
        builder.setContentTitle("TANSU");
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_tansu);
        builder.setLargeIcon(bitmap);
        builder.setSmallIcon(R.drawable.icon_tansu);
        builder.setWhen(System.currentTimeMillis());
        builder.setContentIntent(contentIntent);
        startForeground(notifId, builder.build());
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i(TAG, "onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }

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

    @Override
    public IBinder onBind(Intent intent)
    {
        return super.onBind(intent);
    }

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
    }

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {
        Log.i(TAG, "onRemoved()------------------------------------");
    }

    @Override
    public void onListenerConnected()
    {
        Log.i(TAG, "NLS is on connected!");
    }

    @Override
    public void onListenerDisconnected()
    {
        Log.i(TAG, "NLS is on disconnected...");
    }
}

(*2)

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
public class NLStest extends NotificationListenerService {

    private static final String TAG = "myDEBUG(refactor)";

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

        final int notifId = 4;

        // 通知をタップしたき起動させる設定を施す
        Intent showTaskIntent = new Intent(getApplicationContext(), MainActivity.class);
        showTaskIntent.setAction(Intent.ACTION_MAIN);
        showTaskIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        showTaskIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        PendingIntent contentIntent = PendingIntent.getActivity(
                getApplicationContext(),
                0,
                showTaskIntent,
                PendingIntent.FLAG_UPDATE_CURRENT
        );

        // ステータスバーへ表示
        Notification.Builder builder = new Notification.Builder(getApplicationContext());
        builder.setContentTitle("TANSU");
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon_tansu);
        builder.setLargeIcon(bitmap);
        builder.setSmallIcon(R.drawable.icon_tansu);
        builder.setWhen(System.currentTimeMillis());
        builder.setContentIntent(contentIntent);
        startForeground(notifId, builder.build());
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.i(TAG, "onStartCommand");
        return super.onStartCommand(intent, flags, startId);
    }

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

    @Override
    public IBinder onBind(Intent intent)
    {
        return super.onBind(intent);
    }

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
    }

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    @Override
    public void onNotificationRemoved(StatusBarNotification sbn) {
        Log.i(TAG, "onRemoved()------------------------------------");
    }

    @Override
    public void onListenerConnected()
    {
        Log.i(TAG, "NLS is on connected!");
    }

    @Override
    public void onListenerDisconnected()
    {
        Log.i(TAG, "NLS is on disconnected...");
    }
}