PendingIntent getBroadcast: чтобы проверить, прослушивается ли уведомление в строке состояния пользователем

#android

#Android

Вопрос:

Я создаю уведомление в строке состояния из службы, которая всегда работает в фоновом режиме. Я хочу отменить уведомление, если пользователь не подключался к нему в течение 5 минут.

Итак, как мне проверить, по-прежнему ли активно уведомление в строке состояния??

Я узнал, что мы можем PendingIntent getBroadcast с помощью FLAG_NO_CREATE, если он возвращает значение, отличное от Null, это означает, что уведомление в строке состояния все еще активно. Но для меня оно всегда возвращает null, даже если уведомление в строке состояния активно. Пожалуйста, найдите код ниже.

Пожалуйста, дайте мне знать, если я делаю что-то не так.

Код :

 /* Notification intent creation */

Intent notificationIntent = new Intent(Intent.ACTION_MAIN, null);
            notificationIntent = new Intent(Intent.ACTION_MAIN, null);
            notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);

            final ComponentName cn = new ComponentName("com.ActivityTrackingUI", "com.ActivityTrackingUI.Main");
            notificationIntent.setComponent(cn);

/* check */

            if(PendingIntent.getBroadcast( this, 0, notificationIntent, PendingIntent.FLAG_NO_CREATE) != null)
            {
                Log.e("","notification present");
            }
            else
                Log.e("","notification not present");
  

всегда выводит уведомление, которого нет

Ответ №1:

Вы должны указать правильное значение requestCode в качестве второго параметра для PendingIntent.getBroadcast, чтобы оно имело то же значение, что и при создании уведомления. Смотрите также здесь для получения подробной информации: http://code.google.com/p/android/issues/detail?id=7780