1.调用generateNotification(BeanAlarm beanAlarm) 方法。
private Context context = null;
private static int nId = 0;
private void generateNotification(BeanAlarm beanAlarm) { SharedUtils.saveIsNotification(context, true); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); if (notificationManager == null) { return; } String guid = beanAlarm.getAlarmGuid(); if (guid != null) { if(beanAlarm.getName() == null){ beanAlarm.setName(context.getString(R.string.name)); } if(beanAlarm.getSimilarity() == null){ beanAlarm.setSimilarity(""); } if(beanAlarm.getNote() == null){ beanAlarm.setNote(context.getString(R.string.notification_null_notes)); } if(beanAlarm.getNote().isEmpty()){ beanAlarm.setNote(context.getString(R.string.notification_empty_notes)); } String subject = beanAlarm.getName() + " " + beanAlarm.getSimilarity(); String notes = beanAlarm.getNote(); Intent notificationIntent = new Intent(context, MainActivity.class); notificationIntent.putExtra("Guid", guid); //notificationIntent.setAction(Intent.ACTION_MAIN); //notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent intent = PendingIntent.getActivity(context, nId, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); Notification notification; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (notificationManager.getNotificationChannel(FACE_DETECTION_ALARM_NOTIFICATION_CHANNEL_ID) == null) { createNotificationChannel(notificationManager); } notification = getChannelNotification(subject, notes, intent).build(); } else { notification = getNotification_25(subject, notes, intent).build(); notification.flags |= Notification.FLAG_AUTO_CANCEL; } notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE; notificationManager.notify(nId++, notification); } } private void createNotificationChannel(NotificationManager notificationManager) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { return; } NotificationChannel channel = new NotificationChannel(FACE_DETECTION_ALARM_NOTIFICATION_CHANNEL_ID, "xxxxxx", NotificationManager.IMPORTANCE_HIGH); channel.enableLights(true); notificationManager.createNotificationChannel(channel); } private Notification.Builder getChannelNotification(String subject, String message, PendingIntent intent) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { return null; } return new Notification.Builder(context, FACE_DETECTION_ALARM_NOTIFICATION_CHANNEL_ID).setLargeIcon(BitmapFactory.decodeResource(context.getResources (), R.mipmap.ic_launcher)).setSmallIcon(R.mipmap.icon_notification_small).setContentIntent(intent).setContentTitle(subject).setContentText(message) .setAutoCancel(true).setShowWhen(true).setVisibility(Notification.VISIBILITY_PUBLIC); } private NotificationCompat.Builder getNotification_25(String subject, String message, PendingIntent intent) { return new NotificationCompat.Builder(context).setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher)).setSmallIcon (R.mipmap.icon_notification_small).setContentIntent(intent).setContentTitle(subject).setContentText(message).setAutoCancel(true).setShowWhen(true) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC).setPriority(NotificationCompat.PRIORITY_HIGH).setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE); }
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦