android通知展开,通知Notification(可展开的大布局)使用,适配android8.0

补充修正:

2018-11-07 问题:Notification PendingIntent失效,每个通知都响应第一个PendingIntent

https://blog.csdn.net/u013370255/article/details/83791750

2018-08-16 问题:app版本更新,通知形式显示安装包下载进度

https://blog.csdn.net/u013370255/article/details/81737122

1、调用

Intent intent = new Intent(context, MainActivity.class);

Bundle bundle = new Bundle();

intent.putExtras(bundle);

PendingIntent pi = PendingIntent.getActivity(context, 0, intent, 0);

showNotification(getApplicationContext(),pi,"标题","标题","主要标题","标题",tuiSongMessage);

/**

* 生成通知

* @param context

* @param pi

* @param ticker 标题

* @param contentTitle标题

* @param bigContentTitle主要标题

* @param summaryText标题

* @param tuiSongMessage显示内容(消息体)

*/

private void showNotification(Context context,PendingIntent pi,

String ticker,String contentTitle,String bigContentTitle,String summaryText,

TuiSongResponse tuiSongMessage){

//android O后必须传入NotificationChannel

if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

NotificationCompat.Builder builder = new NotificationCompat.Builder(context,"1");

setNotification(builder,context,pi,ticker,contentTitle,bigContentTitle,summaryText,tuiSongMessage);

notificationManager.notify(Constants.NOTIFICATIONID, builder.build());

//ChannelId为"1",ChannelName为"Channel1"

NotificationChannel channel = new NotificationChannel("1",

"Channel1", NotificationManager.IMPORTANCE_DEFAULT);

channel.enableLights(true); //是否在桌面icon右上角展示小红点

channel.setLightColor(Color.YELLOW); //小红点颜色

channel.setShowBadge(false); //是否在久按桌面图标时显示此渠道的通知

notificationManager.createNotificationChannel(channel);

}else {

NotificationCompat.Builder builder = new NotificationCompat.Builder(context,null);

setNotification(builder,context,pi,ticker,contentTitle,bigContentTitle,summaryText,tuiSongMessage);

NotificationManagerCompat managerCompat = NotificationManagerCompat.from(context);

managerCompat.notify(Constants.NOTIFICATIONID, builder.build());

}

}

/**

* 设置大布局通知参数

* @param builder

* @param context

* @param pi

* @param ticker

* @param contentTitle

* @param bigContentTitle

* @param summaryText

* @param tuiSongMessage

*/

private void setNotification(NotificationCompat.Builder builder,Context context,PendingIntent pi,

String ticker,String contentTitle,String bigContentTitle,String summaryText,

TuiSongResponse tuiSongMessage){

builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.logo))

.setTicker(ticker)

.setContentTitle(contentTitle)

.setWhen(System.currentTimeMillis())

.setContentIntent(pi)

.setVibrate(new long[]{500, 500, 500, 500, 500, 500})

.setAutoCancel(true)

.setDefaults(Notification.DEFAULT_SOUND);

//大布局通知在4.1以后才能使用,BigTextStyle

NotificationCompat.BigTextStyle textStyle = null;

if(android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.JELLY_BEAN) {

textStyle = new NotificationCompat.BigTextStyle();

textStyle.setBigContentTitle(bigContentTitle)

// 标题

.setSummaryText(summaryText)

.bigText(tuiSongMessage.content.content);// 内容

builder.setStyle(textStyle);

}

builder.setContentText(tuiSongMessage.content.content);

if(SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

builder.setSmallIcon(R.drawable.logo_alpha);

} else {

builder.setSmallIcon(R.mipmap.logo);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值