[英]Can I disable notification badge on android and small notification icon?
[英]how to disable notification small icon?
如何disable
或hide
通知小图标? 我知道这是强制性的,但我想隐藏或删除小图标,只显示大图标。
Notification.Builder builder = new Notification.Builder(FcmIntentService.this).setSmallIcon(R.drawable.notification_small_icon_transparent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(11, builder.build());
我想要这样的谷歌加通知:
你可以隐藏这种方式。
.setSmallIcon(android.R.color.transparent)
创建自定义通知并从通知构建器中删除.setStyle() 。
在阅读代码之前,请先阅读本文档。 非常有帮助,将清除您的所有疑虑: Android自定义通知文档
使用提供的代码,在布局文件夹中创建两个布局,一个用于折叠视图,另一个用于展开视图(如果要显示展开视图)
// custom notification class
public class NotificationUtils {
private static String TAG = NotificationUtils.class.getSimpleName();
private String channelId = "notification_channel";
private static final int NOTIFICATION_ID_BIG_IMAGE = 101;
private Context mContext;
public NotificationUtils(Context mContext) {
this.mContext = mContext;
}
//Call this method in your FirebaseMessagingService class
public void showNotificationMessage(String billUrl, String title, String message, String timeStamp, Intent intent) {
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
final PendingIntent resultPendingIntent =
PendingIntent.getActivity(mContext,0,intent,
PendingIntent.FLAG_ONE_SHOT
);
final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext, channelId);
if (billUrl != null && billUrl.length() > 4 && Patterns.WEB_URL.matcher(billUrl).matches()) {
Bitmap bitmap = getBitmapFromURL(billUrl);
if (bitmap != null) {
showNotification(bitmap, mBuilder, title, message, timeStamp, resultPendingIntent);
}
}
}
private void showNotification(Bitmap bitmap, NotificationCompat.Builder mBuilder, String brandName,
String description, String timeStamp, PendingIntent resultPendingIntent) {
// Get the layouts to use in the custom notification
RemoteViews notificationLayout = new RemoteViews(mContext.getPackageName(), R.layout.view_collapsed_notification);
RemoteViews notificationLayoutExpanded = new RemoteViews(mContext.getPackageName(), R.layout.view_expanded_notification);
//Null and Empty checks for your Key Value Pairs
if (bitmap != null) {
notificationLayoutExpanded.setImageViewBitmap(R.id.bill_container, bitmap);
}
if (brandName != null) {
notificationLayout.setTextViewText(R.id.content_title, brandName);
notificationLayoutExpanded.setTextViewText(R.id.expand_content_title, brandName);
}
if (description != null) {
notificationLayout.setTextViewText(R.id.content_text, description);
notificationLayoutExpanded.setTextViewText(R.id.expand_content_text, description);
}
if (timeStamp != null) {
notificationLayout.setTextViewText(R.id.timestamp, timeStamp);
notificationLayoutExpanded.setTextViewText(R.id.expand_timestamp, timeStamp);
}
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mBuilder =
new NotificationCompat.Builder(mContext, channelId)
.setSmallIcon(R.drawable.ic_notification_logo)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setCustomContentView(notificationLayout)
.setCustomBigContentView(notificationLayoutExpanded)
.setPriority(Notification.PRIORITY_MAX)
.setContentIntent(resultPendingIntent);
NotificationManager notificationManager =
(NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
// Since android Oreo notification channel is needed.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(channelId,
"notifications",
NotificationManager.IMPORTANCE_HIGH);
notificationManager.createNotificationChannel(channel);
}
notificationManager.notify(NOTIFICATION_ID_BIG_IMAGE, mBuilder.build());
}
// Downloading push notification image before displaying it in the notification tray
private Bitmap getBitmapFromURL(String strURL) {
try {
URL url = new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
只需使用.setLargeIcon(getBitmap(R.drawable.large_icon))
和for。 setSmallIcon()
使用透明图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.