Collision with the same issue for WhatsApp notification
I just solve this problem by creating a new key using statusBarNotification.key + statusBarNotification.title
Now save this key in my SQLiteDatabase
code written in Kotlin
override fun onNotificationPosted(sbn: StatusBarNotification?) { if(sbn?.tag!=null) { var key = sbn?.key ?: null var id = sbn?.id var postTime = sbn?.postTime var packageName = sbn?.packageName ?: null var tikerText = sbn?.notification?.tickerText ?: null var extraBundle: Bundle? = sbn?.notification?.extras ?: null var notificationTitle = extraBundle?.get(Notification.EXTRA_TITLE) var text = extraBundle?.getCharSequence(Notification.EXTRA_TEXT).toString() var modifiyedUniq = key + notificationTitle //check key present in database or not if (!databaseHandler.checkNotification(modifiyedUniq!!)) { Log.e(TAG, "Notification Key :: ${key}") Log.e(TAG, "Notification Id :: ${id}") Log.e(TAG, "Notification postTime :: ${postTime}") Log.e(TAG, "Notification From :: ${packageName}") Log.e(TAG, "Notification TikerText :: ${tikerText}") Log.e(TAG, "Notification Title :: ${notificationTitle}") Log.e(TAG, "Notification Text :: ${text}") //now add this record in database databaseHandler.addNotification(notificationData) } } }
this databaseHandler.checkNotification(modifiyedUniq!!) method returns true if the record is present with this key, otherwise it returns false
each time a key is checked, if there is no record, it means a new notification
fun checkNotification(key: String): Boolean { var isPresent: Boolean = false val db = readableDatabase val selectALLQuery = "SELECT * FROM $TABLE_NAME WHERE $KEY='${key}'" val cursor = db.rawQuery(selectALLQuery, null) if (cursor != null) { if (cursor.count > 0) { cursor.close() db.close() Log.e("","====================================RECORD PRESEBNT=======================") return true } } cursor.close() db.close() Log.e("","===*******=======********=====RECORD NOT PRESENT===*******=======********=====") return isPresent }
Notification 0 | 0|com.whatsapp|1| XX2X606878@s.whatsapp.net |10171
tag = 91XX06X78@s.whatsapp.net
Notification Id :: 1 Notification postTime :: 15464X794103 Notification From :: com.whatsapp Notification TikerText :: null Notification Title :: XXX X Bca (2 messages): Notification Text :: XXXXX(last new Message)
source share