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);
}
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦