android 锁屏通知

您所在的位置:网站首页 android锁定 android 锁屏通知

android 锁屏通知

2023-09-09 03:59| 来源: 网络整理| 查看: 265

最近有个需求,说要弄个锁屏通知,通知倒是做过很多了,锁屏通知还真没弄过,经过一番研究,这里做个记录,方便搬砖。

话不多少,直接上效果图:

 直接上代码:

安卓系统7以及以下:

Notification.MediaStyle style = new Notification.MediaStyle(); Intent intent = new Intent(this,MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this,0,intent,0); NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new Notification.Builder(this) .setContentTitle("这是测试通知标题") //设置标题 .setContentText("这是测试通知内容") //设置内容 .setWhen(System.currentTimeMillis()) //设置时间 .setSmallIcon(R.mipmap.ic_launcher) //设置小图标 只能使用alpha图层的图片进行设置 .setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)) //设置大图标 .setContentIntent(pi) .setStyle(style) .setAutoCancel(true) .build(); manager.notify(1,notification);

关键在于要用这个MediaStyle,此代码运行在Android11、12 没问题,but,

需要指定目标版本为23到25,如图:

defaultConfig { applicationId "com.example.myapplication" minSdk 23 targetSdk 25 versionCode 1 versionName "1.0" }

安卓系统8.0及以上:

由于8.0以上改变比较大,要求必须使用通知渠道,不然无法显示通知,

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); String channelId = "imservice"; String channelName = "前台通知渠道测试"; String description = "测试内容"; int importance = NotificationManager.IMPORTANCE_HIGH;// 这个重要等级设置低的话,需要手动去设置页面打开通知渠道 NotificationChannel channel = new NotificationChannel(channelId, channelName, importance); channel.setSound((Uri) null, (AudioAttributes) null); channel.setDescription(description); channel.enableVibration(true);//设置振动 notificationManager.createNotificationChannel(channel); Intent intent = new Intent(this, MainActivity.class); PendingIntent pi = PendingIntent.getActivity(this,0,intent ,0); int notifyID = 1; Notification notification = new Notification.Builder(this, channelId) .setContentTitle("通知标题") .setContentText("通知内容") .setLargeIcon(BitmapFactory.decodeResource(this.getResources(), R.mipmap.ic_launcher)) .setSmallIcon(R.mipmap.ic_launcher) .setContentIntent(pi) .setStyle(new Notification.MediaStyle()) .setAutoCancel(true) .build(); notificationManager.notify(notifyID, notification); }

一样的,要想通知显示在锁屏界面,这个MediaStyle很重要,

defaultConfig { applicationId "com.example.myapplication" minSdk 23 targetSdk 30 versionCode 1 versionName "1.0" }

好了,又可以愉快玩耍了。

Android开发官网通知地址:

通知概览  |  Android 开发者  |  Android Developers

demo    android锁屏通知小DEMO-Android文档类资源-CSDN下载



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3