Я внедрил прослушиватель уведомлений, который в основном копирует входящее уведомление gmail. Затем я увольняю уведомление gmail и показываю свою собственную версию (slighlty customized version с разными кнопками текста/действий). Однако это не настраиваемый макет, я просто использую стиль уведомления по умолчанию.Уведомление использует белый цвет шрифта по умолчанию (нечитабельно)?
Это отлично работает на Android KitKat (темный стиль фона уведомлений), но больше не работает на Android Lollipop и выше (светлый стиль фона уведомлений).
Текст заголовка и кнопки действий выглядят хорошо, но текст в тексте уведомления теперь белый (по умолчанию я думаю) и не читается.
Вот как я реализую это
//Create New Notification Copy
Notification.Builder ncomp = new Notification.Builder(this)
.setLargeIcon((Bitmap) extras.getParcelable(mNotification.EXTRA_LARGE_ICON))
.setContentInfo("" + numunread)
.setSubText(extras.getCharSequence(mNotification.EXTRA_SUB_TEXT))
.setContentText(extras.getCharSequence(mNotification.EXTRA_TEXT))
.setContentTitle(extras.getCharSequence(mNotification.EXTRA_TITLE))
.setSmallIcon(R.drawable.gmail)
.setLargeIcon(sbn.getNotification().largeIcon)
.setAutoCancel(true)
.setStyle(new Notification.BigTextStyle().bigText(extras.getCharSequence(mNotification.EXTRA_SUB_TEXT)));
Notification noti = new Notification.BigTextStyle(ncomp)
.bigText(extras.getCharSequence(mNotification.EXTRA_TEXT))
.setSummaryText(extras.getCharSequence(mNotification.EXTRA_SUB_TEXT))
.setBigContentTitle(extras.getCharSequence(mNotification.EXTRA_TITLE_BIG))
.build();
nManager.notify(oldNotificationTag, notifID, noti);
Вот что уведомление выглядит
Является ли это из-за старого SDK я использую? Изменилось ли изменение Google, как это делается? Я не уверен, почему это происходит внезапно, так как я НЕ создавал настраиваемый макет уведомлений. Вот мой Gradle файл:
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
versionCode 5
versionName "1.22"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:19.0.0'
compile 'com.android.support:support-v4:19.0.0'
compile 'com.google.apis:google-api-services-gmail:v1-rev10-1.19.0'
compile files('libs/asmack-android-8-0.8.9.jar')
compile files('libs/mail.jar')
compile files('libs/activation.jar')
compile files('libs/additionnal.jar')
compile 'com.github.eluleci:flatui:0.1.2'
compile 'de.cketti.library.changelog:ckchangelog:1.2.0'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
}
}
allprojects {
repositories {
mavenCentral()
}
}
Так дозировать это означает chnaging компилировать целевую версию SDK для 21+ и остальной кода без изменений? –
Таргетинг API 21 включает [несколько изменений поведения] (https://developer.android.com/about/versions/android-5.0-changes.html), но да, просто обновление до 21 API-интерфейса без каких-либо изменений должно быть достаточно для этой конкретной проблемы. – ianhanniballake