一、 每个项目都必须有这个,只有这个才能进行不同安卓不同版本的适配
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(Chanel_ID, name, NotificationManager.IMPORTANCE_HIGH);
// 可打可不打,随便
channel.setDescription(description);
channel.enableLights(false); //是否在桌面icon右上角展示小红点
channel.setLightColor(Color.GREEN); //小红点颜色
channel.setShowBadge(true); //是否在久按桌面图标时显示此渠道的通知
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
Log.e(TAG, "" );
}
必须包含以下依赖
dependencies {
implementation "com.android.support:support-compat:28.0.0"
}
二、通知的每个部分
通知的设计由系统模板决定,您的应用只需定义模板各部分的内容。通知的某些详细信息仅在展开视图中显示。
展示了通知最常见的部分,具体如下所示:
- 小图标:此为必要图标,通过 setSmallIcon()设置。
- 应用名称:此由系统提供。
- 时间戳:此由系统提供,不过您可以通过setWhen() 进行替换,或使用 setShowWhen(false)]将其隐藏。 --------好像不怎么用
- 大图标:此为可选图标(通常仅用于联系人照片;请勿将其用于应用图标),通过setLargeIcon() 设置。
- 标题:此为可选内容,通过 setContentTitle() 设置。
- 文本:此为可选内容,通过 setContentText() 设置
三、安卓8之前的内容设置
private void tongzhi() {
//通知栏的显示
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); //获取这个服务
Notification notification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("我是标题") //设置标题
.setContentText("我是内容") //设置内容
.setWhen(System.currentTimeMillis()) //设时间,获取当前时间
.setSmallIcon(R.drawable.p2) //设置小图标
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.p1)) //设置大图标
.build();
manager.notify(1, notification);
}
private void init() {
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
tongzhi();
}
});
}
四、通知的取消方法
1)、取消通知的 第一种方法
.setAutoCancel(true) //设置为自动取消
2)、在跳转后的Activity中
NotificationManager manager =
(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
这里的cancle传入的是一个1,就是我们创建Notification中指定的通知的ID
五、通知的高级使用
1)、设置声音
(2)、设置振动
(3)、设置LED灯闪烁
(4)、进行默认效果设置
Notification notification = new NotificationCompat.Builder(