有没有办法使用NotificationManagerCompat和NotificationCompat时设置在Android奥利奥渠道?NotificationManagerCompat Android上的奥利奥
4
A
回答
7
由于NotificationManagerCompat只是一个包装类,使生活更轻松,你可以正常创建渠道:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val name = getString(R.string.channel_title)
val description = getString(R.string.channel_description)
val importance = NotificationManager.IMPORTANCE_HIGH
val mChannel = NotificationChannel(CHANNEL_ID, name, importance)
mChannel.description = description
mChannel.enableLights(true)
mChannel.lightColor = Color.parseColor("#5B3C88")
mChannel.enableVibration(true)
mChannel.vibrationPattern = longArrayOf(100, 200, 300, 400, 500, 400, 300, 200, 400)
val manager = (context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager)
manager.createNotificationChannel(mChannel)
}
然后当你发布通知使用NotificationManagerCompat,但不要忘了构造通知使用新的构造:
NotificationCompat.Builder(context, CHANNEL_ID)
1
我通常使用这个类来管理的通知信道:
class NotificationManager(private val context: Context) {
companion object {
private val CHANNEL_ID = "YOUR_CHANNEL_ID"
private val CHANNEL_NAME = "Your human readable notification channel name"
private val CHANNEL_DESCRIPTION = "description"
}
@RequiresApi(Build.VERSION_CODES.O)
fun getMainNotificationId(): String {
return CHANNEL_ID
}
@RequiresApi(Build.VERSION_CODES.O)
fun createMainNotificationChannel() {
val id = CHANNEL_ID
val name = CHANNEL_NAME
val description = CHANNEL_DESCRIPTION
val importance = android.app.NotificationManager.IMPORTANCE_LOW
val mChannel = NotificationChannel(id, name, importance)
mChannel.description = description
mChannel.enableLights(true)
mChannel.lightColor = Color.RED
mChannel.enableVibration(true)
val mNotificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as android.app.NotificationManager
mNotificationManager.createNotificationChannel(mChannel)
}
}
然后你可以使用UTIL这样
fun createNotificationCompatBuilder(context: Context): NotificationCompat.Builder {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
return NotificationCompat.Builder(context, NotificationManager(context).mainNotificationId)
} else {
return NotificationCompat.Builder(context)
}
}
这样,您就可以与签名应用程序的任何地方使用它,就像你以前使用过,你可以很容易地改变它在未来的变化情况。
相关问题
- 1. Android上的服务奥利奥
- 2. 奥地利奥地利和奥地利的地理地图
- 3. Android奥利奥WideColorGamut/ProPhotoRGB不被识别
- 4. 听觉通知(Android奥利奥)
- 5. Settings.canDrawOverlays(上下文)Android上的奥利奥返回false
- 6. NotificationListenerService没有绑定到Android 8上的SystemUI(奥利奥)
- 7. 奥雷利奥获取无限循环
- 8. 奥利奥 - 在前台开始服务
- 9. 阅读短信与奥利奥
- 10. Xamarin奥利奥自适应图标
- 11. Android的奥利奥 - 推送通知崩溃
- 12. Android的奥利奥背景位置限制
- 13. 福利奥轮廓
- 14. 在奥里利亚
- 15. 奥利奥模拟器上没有显示通知
- 16. 奥里利亚奥里利亚-HTTP客户端JSONP
- 17. 奥里利亚repeat.for项目
- 18. .bind VS在奥里利亚
- 19. 参考在奥里利亚
- 20. 检索与IDA或奥利
- 21. B2G - 利奥建立错误
- 22. 奥里利亚repeat.for限制
- 23. 相关的更改对于奥利奥提供错误
- 24. 在Android O(奥利奥)中更改模式首选项的命令
- 25. 在奥利奥上小心翼翼地获取iBeacon的主要,次要和UUID
- 26. 奥利奥:禁用活动转换动画
- 27. 升级到奥利奥后应用程序中断
- 28. 安卓“O”(奥利奥,8)媒体按钮问题
- 29. 崩溃在Android 8.0(API 26,奥利奥)Twilio聊天客户端关机期间
- 30. 使用已启用的电池保护程序在Android Nougat或Android奥利奥上管理互联网连接