短视频系统源码,收到私信后发送通知和提示音
短视频系统源码,收到私信后发送通知和提示音实现的相关代码
发送通知
private NotificationManager manager; private Notification.Builder notification; //判断是否有通知权限 private boolean isNotification(){ return NotificationManagerCompat.from(this).areNotificationsEnabled(); } if (!isNotification()) {//没有通知权限 //申请权限 rquestPremission(mActivity); }else { sendNotificotaion(); } private boolean rquestPremission(BaseActivity context) {//判断应用的通知权限是否打开,返回Boolean值 if (!NotificationManagerCompat.from(context).areNotificationsEnabled()) { Intent localIntent = new Intent(); //判断API,跳转到应用通知管理页面 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {//8.0及以上 localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); localIntent.setData(Uri.fromParts("package", context.getPackageName(), null)); } else if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//8.0以下 localIntent.setAction("android.settings.APP_NOTIFICATION_SETTINGS"); localIntent.putExtra("app_package", context.getPackageName()); localIntent.putExtra("app_uid", context.getApplicationInfo().uid); } context.startActivityForResult(localIntent,2); return false; } return true; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 2){ sendNotificotaion(); } super.onActivityResult(requestCode, resultCode, data); } public void sendNotificotaion(BaseActivity context, String title, String msg) { if (rquestPremission(context)) { manager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE); notification = null; if (Build.VERSION.SDK_INT >= 26) {//API26以上的方法 NotificationChannel channel = new NotificationChannel("id", "name", NotificationManager.IMPORTANCE_HIGH); manager.createNotificationChannel(channel); notification = new Notification.Builder(context, "id") .setContentTitle(title) .setContentText(msg) .setSmallIcon(R.mipmap.icon); } else {//API26以下 notification = new Notification.Builder(context) .setContentTitle(title) .setContentText(msg) .setSmallIcon(R.mipmap.icon); } notification.setProgress(100,0,false); manager.notify(1, notification.build()); notificationPlayVideo();//播放提示音 } }
发送通知提示音
所有系统类型音频:
/** * Type that refers to sounds that are used for the phone ringer. */ public static final int TYPE_RINGTONE = 1;//铃声类型 /** * Type that refers to sounds that are used for notifications. */ public static final int TYPE_NOTIFICATION = 2;//类型通知 /** * Type that refers to sounds that are used for the alarm. */ public static final int TYPE_ALARM = 4;//类型警报 /** * All types of sounds. */ public static final int TYPE_ALL = TYPE_RINGTONE | TYPE_NOTIFICATION | TYPE_ALARM;//全部输入 public void notificationPlayVideo(){ Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);//类型通知 Ringtone rt = RingtoneManager.getRingtone(getApplicationContext(), uri); rt.play(); }
以上就是 短视频系统源码,收到私信后发送通知和提示音实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现