前言
我们在做Android开发的时候,免不了会使用到Notification,而且在android设备的设置中还可以设置通知音的优先级,以及播放的声音种类。那么通知音是如何播放的呢,今天我们就来谈谈这个。
Notification的使用
NotificationManager notificationManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
//重点:先创建通知渠道
if(android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.O){
NotificationChannel mChannel=new NotificationChannel(getString(R.string.app_name),getString(R.string.app_name),NotificationManager.IMPORTANCE_MAX);
NotificationChannel channel=new NotificationChannel(channelId,
channelName,NotificationManager.IMPORTANCE_DEFAULT);
channel.enableLights(true); //设置开启指示灯,如果设备有的话
channel.setLightColor(Color.RED); //设置指示灯颜色
channel.setShowBadge(true); //设置是否显示角标
channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);//设置是否应在锁定屏幕上显示此频道的通知
channel.setDescription(channelDescription);//设置渠道描述
channel.setVibrationPattern(new long[]{100,200,300,400,500,600});//设置震动频率
channel.setBypassDnd(true);//设置是否绕过免打扰模式
notificationManager.createNotificationChannel(mChannel);
}
//再创建通知
NotificationCompat.Builder builder=new NotificationCompat.Builder(this,getString(R.string.app_name));
//设置通知栏大图标,上图中右边的大图
builder.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher))
// 设置状态栏和通知栏小图标
.setSmallIcon(R.drawable.ic_launcher_background)
// 设置通知栏应用名称
.setTicker("通知栏应用名称")
// 设置通知栏显示时间
.setWhen(System.currentTimeMillis())
// 设置通知栏标题
.setContentTitle("通知栏标题")
// 设置通知栏内容
.setContentText("通知栏内")
// 设置通知栏点击后是否清除,设置为true,当点击此通知栏后,它会自动消失
.setAutoCancel(false)
// 将Ongoing设为true 那么左滑右滑将不能删除通知栏
.setOngoing(true)
// 设置通知栏点击意图
.setContentIntent(pendingIntent)
// 铃声、