Сохранение уведомлений в приложениях Gmail и Google не работает в Android/KotlinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Сохранение уведомлений в приложениях Gmail и Google не работает в Android/Kotlin

Сообщение Anonymous »

Я делаю приложения для Android, которые также имеют функцию сохранения уведомлений, которые были получены на устройстве. Я использую NotificaitOnListenerService для получения уведомлений и базы данных комнаты для их сохранения в устройстве. Код работает совершенно хорошо для многих приложений, и он извлекает и сохраняет их приложение, но некоторые приложения, такие как Gmail, Pinterest и другие приложения Google, имеют проблемы при сохранении данных уведомлений. Ниже приведен фрагмент кода: < /p>
override fun onNotificationPosted(sbn: StatusBarNotification?) {
super.onNotificationPosted(sbn)

CoroutineScope(Dispatchers.IO).launch {
//If sbn?.notification is null, the return@launch statement will stop the execution (not run rest of the code)
val notification = sbn?.notification ?: return@launch

// Ignore our own notifications
if (sbn.packageName == packageName) return@launch

// Ignore notifications from foreground services
if ((notification.flags and Notification.FLAG_FOREGROUND_SERVICE) != 0) {
return@launch
}

val extras = notification.extras

val packageName = sbn.packageName
val appName = packageName?.let { packageManager.getApplicationInfo(it, 0) }?.let {
packageManager.getApplicationLabel(it)
}.toString()
val title = extras?.getString(Notification.EXTRA_TITLE) ?: ""
val text = extras?.getString(Notification.EXTRA_TEXT) ?: ""
val bigText = extras?.getString(Notification.EXTRA_BIG_TEXT) ?: ""
val subText = extras?.getString(Notification.EXTRA_SUB_TEXT) ?: ""
val category = packageName?.let { getCategory(it) }.toString()
val postTime = System.currentTimeMillis()
val isRead = false

// Generate unique key for this notification
val imageKey = generateImageKey(packageName, title)

// Check if we already have this image
val largeIconPath = getExistingImagePath(imageKey) ?: // Handle new image
handleLargeIcon(extras, imageKey)

Log.d(
"Notificationsss",
"AppName: $appName \nTitle: $title \nText: $text \nBigText: $bigText \nSubText: $subText"
)

val style = extras.getString("android.template")
Log.d("styleeeee", "Style: $style")

saveToDatabase(
packageName,
appName,
title,
text,
bigText,
subText,
category,
postTime,
largeIconPath,
isRead
)
}
}
< /code>
Хотя этот код работает для большинства приложений и сохранять их уведомления, я не могу сохранить уведомление от Gmail, Pinterest и некоторых других приложений Google. Пожалуйста, помогите мне решить эту проблему, я погуглил, искал повсюду и даже спрашивая, что ИИ не может помочь мне решить эту проблему. Так что, пожалуйста, любая помощь будет оценена.

Подробнее здесь: https://stackoverflow.com/questions/795 ... in-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»