android发送通知代码,Android 8.0实现发送通知

bea8c5a55e65a200c3aa5024febca573.png

在Android8.0以后,针对Notification 通知api做了修改,新增了通知渠道(NotificationCannel)。下面就把demo的详细代码记录下:

1.Application 为NotificationManager添加通知频道

import android.app.Application;

import com.xinrui.ndkapp.notification.NotificationChannels;

public class NdkApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

NotificationChannels.createAllNotificationChannels(this);

}

}

2.NotificationChannels 类

public class NotificationChannels {

public final static String CRITICAL = "critical";

public final static String IMPORTANCE = "importance";

public final static String DEFAULT = "default";

public final static String LOW = "low";

public final static String MEDIA = "media";

public static void createAllNotificationChannels(Context context) {

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

if(nm == null) {

return;

}

NotificationChannel mediaChannel = new NotificationChannel(

MEDIA,

context.getString(R.string.app_name),

NotificationManager.IMPORTANCE_DEFAULT);

mediaChannel.setSound(null,null);

mediaChannel.setVibrationPattern(null);

nm.createNotificationChannels(Arrays.asList(

new NotificationChannel(

CRITICAL,

context.getString(R.string.app_name),

NotificationManager.IMPORTANCE_HIGH),

new NotificationChannel(

IMPORTANCE,

context.getString(R.string.app_name),

NotificationManager.IMPORTANCE_DEFAULT),

new NotificationChannel(

DEFAULT,

context.getString(R.string.app_name),

NotificationManager.IMPORTANCE_LOW),

new NotificationChannel(

LOW,

context.getString(R.string.app_name),

NotificationManager.IMPORTANCE_MIN),

//custom notification channel

mediaChannel

));

}

}

3.发送通知

public void sendSimpleNotification(Context context, NotificationManager nm) {

//创建点击通知时发送的广播

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

intent.setAction("android.service.notification.NotificationListenerService");

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

//创建删除通知时发送的广播

Intent deleteIntent = new Intent(context,NotificationMonitorService.class);

deleteIntent.setAction(Intent.ACTION_DELETE);

PendingIntent deletePendingIntent = PendingIntent.getService(context,0,deleteIntent,0);

//创建通知

Notification.Builder nb = new Notification.Builder(context, NotificationChannels.DEFAULT)

//设置通知左侧的小图标

.setSmallIcon(R.drawable.ic_notification)

//设置通知标题

.setContentTitle("Simple notification")

//设置通知内容

.setContentText("Demo for simple notification!")

//设置点击通知后自动删除通知

.setAutoCancel(true)

//设置显示通知时间

.setShowWhen(true)

//设置通知右侧的大图标

.setLargeIcon(BitmapFactory.decodeResource(context.getResources(),R.drawable.ic_notifiation_big))

//设置点击通知时的响应事件

.setContentIntent(pi)

//设置删除通知时的响应事件

.setDeleteIntent(deletePendingIntent);

//发送通知

nm.notify(Notificaitons.NOTIFICATION_SAMPLE,nb.build());

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

原文链接:https://blog.csdn.net/baidu_41666295/article/details/107619464

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值