2014-03-07 8 views
1

안드로이드에서 푸시 알림을 구현하고 있는데, 알림의 특정 번호를 표시하는 것이 알림 바입니다. 최근 5 개의 알림을 표시해야한다고 가정 해 보겠습니다. 나는 5 통의 통보를 받고 그들을 보여줍니다. 6 번째 통보를 받으면 가장 오래된 통보 등을 버려야합니다. 더 나아가 알림을 없애고 각 알림을 별도의 알림으로 표시하고 싶지 않습니다.안드로이드에 특정 알림 수를 표시하는 방법

편집 :

티피 케이션에서 사용할 수있는 기능이 있습니다.

void cancel(int id) 
Cancel a previously shown notification. 

그리고 앱의 알림 표시 줄에 몇 통의 알림이 여전히 표시되는지 확인합니다. nNotificationListenerService의 메서드는 getActiveNotifications()이라는 이름으로 사용할 수 있습니다. 그러나 여전히 안드로이드 API 18 이상에 getActiveNotifications()이 존재하는 문제가 있습니다. API 레벨 < 18에 대한 모든 솔루션?

+0

-1로 투표하는 경우 귀하의 외모가 유효하지 않은 경우 내 질문을 개선 할 수 있도록 의견을 남겨 두어야합니다. – Adnan

+0

당신은 SO의 질문을 읽어야합니다. 지금까지 무엇을 시도 했습니까? – Selvin

+0

나는 GSM과 알림에 관한 안드로이드 개발자에 대한 기사를 읽었습니다. 그런 다음 끝까지 구현했습니다. 문제는 특정 번호 다음에 더 많은 알림을 받으면 가장 오래된 알림을 제거하는 것입니다. – Adnan

답변

2

당신이 통지의 ID를 제공하여, 쉽게 알림을 취소 할 수 있습니다 http://developer.android.com/reference/android/app/NotificationManager.html#cancel(int)

그러나 , 당신은 또한 ID를 재사용하여 통지를 업데이트 할 수 있습니다, 당신은 그것을 취소 할 필요가 없습니다.

공격 계획은 5 개의 미리 정의 된 ID를 통해 반복하여 알림을 만든 다음 여섯 번째 알림에서 "가장 오래된"ID를 다시 사용하는 것입니다. 이렇게하면 가장 오래된 알림이 새 알림으로 바뀝니다.

+0

고마워, 좋은 생각 .. 트릭이란, 얼마나 많은 알림이 사용자에 의해 취소되고 얼마나 많은 사람들이 알림 표시 줄에 남아 있는지 알 수 있습니까? – Adnan

+0

getActiveNotifications는 18+ (또는 19?)에서만 사용할 수 있으므로 삭제 의도를 사용하여 추적해야 할 수도 있습니다. http://developer.android.com/reference/android/app/Notification.Builder .html # setDeleteIntent % 28android.app.PendingIntent % 29 – nebulae

관련 문제