android 播放短信声音,浅谈Android O Notification声音播放流程

本文探讨了Android O及以上版本中,Notification声音播放的流程。从创建NotificationChannel到enqueueNotification,再到NotificationRecord和AudioAttributes的使用,详细阐述了如何通过RingtonePlayer或MediaPlayer播放通知音,并介绍了在电话中与非电话状态下声音播放的区别。
摘要由CSDN通过智能技术生成

前言

我们在做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)

// 铃声、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值