Android(安卓)8.0 通知栏的适配
16lz
2021-01-25
完整代码如下
package ai.aitek.cattserverimport ai.aitek.gattserver.Rimport android.app.*import android.content.Intentimport android.os.IBinderimport android.os.Buildimport android.support.v4.app.NotificationCompatimport java.util.*class ForegroundService : Service() { override fun onBind(p0: Intent?): IBinder? { return null } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { val pendingIntent = PendingIntent.getActivity(applicationContext, 0, Intent(applicationContext, GattServerActivity::class.java), PendingIntent.FLAG_UPDATE_CURRENT);//这里第二个参数可以用于后边根据不同的消息设置不同的点击事件 var mBuilder: NotificationCompat.Builder? = null val notificationManager = applicationContext.getSystemService(Service.NOTIFICATION_SERVICE) as NotificationManager if (Build.VERSION.SDK_INT >= 26) { val channel = NotificationChannel("YOUR_CHANNEL_ID001", "YOUR_CHANNEL_NAME", NotificationManager.IMPORTANCE_HIGH) notificationManager.createNotificationChannel(channel) mBuilder = NotificationCompat.Builder(applicationContext, "YOUR_CHANNEL_ID001") } else { mBuilder = NotificationCompat.Builder(applicationContext); } mBuilder.setContentTitle("GattServer标题")//设置通知栏标题 .setContentText("GattServer内容")//设置通知栏显示内容// .setContent(contentViews)// .setNumber(20)//设置通知集合的数量 .setTicker("通知来啦")//通知首次出现在通知栏,带上升动画效果的 .setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间 .setPriority(Notification.PRIORITY_DEFAULT)//设置该通知优先级 .setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消 .setOngoing(false)//true,设置他为一个正在进行的通知 .setDefaults(Notification.DEFAULT_ALL)//向通知添加声音、闪灯和振动效果的最简单 //设置通知小ICON try { mBuilder.setSmallIcon(R.mipmap.cattserver); } catch (e: Exception) { e.printStackTrace(); } mBuilder.setContentIntent(pendingIntent); notificationManager.notify(UUID.randomUUID().hashCode(), mBuilder.build()); return super.onStartCommand(intent, flags, startId); }}
不适配的话会报以下错误
android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification
更多相关文章
- 5张图片解决android studio报错:Failed to resolve: com.android.
- Android之自定义最简单的竖向引导页
- 自定义React Native Modal,支持全屏弹框
- uniapp自定义弹窗组件|Modal模态框|Loading加载框
- android listview仿iphone弹簧特效
- 样式表以及Color.xml文件『Android系列六』
- Android(安卓)L中六个人性化功能
- Android(安卓)点击通知栏消息 跳转到指定的Fragment界面
- Android实现多个跑马灯效果,多个文本框TextView的跑马灯