package com.smartdot.cgt.util; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.support.v4.app.NotificationCompat; import com.smartdot.cgt.R; import com.smartdot.cgt.activity.BaseActivity; import com.smartdot.cgt.activity.FrmNotificationCloser; import java.util.ArrayList; import java.util.List; public class NotificationCreater { private static List<Integer> nowNotificationList = new ArrayList<Integer>(); /** * 创建并发出以一个广播 * * @param context 上下文 * @param intent * @param iconId 广播ID * @param tickerText 设置显示提示信息,该信息也会在状态栏显示 * @param contentTitle 内容标题 * @param contentText 内容正文 */ public static void createNotification(Context context, Intent intent, int iconId, CharSequence tickerText, CharSequence contentTitle, CharSequence contentText) { intent.putExtra(BaseActivity.KEY_NOTIFICATIONIDTOCLOSE, iconId); // NotificationManager notificationManager = (NotificationManager) context // .getSystemService(Activity.NOTIFICATION_SERVICE); // Notification notification = new Notification(iconId, tickerText, // System.currentTimeMillis()); // PendingIntent contentIntent = PendingIntent.getActivity(context, 0, // intent, PendingIntent.FLAG_UPDATE_CURRENT); // notification.setLatestEventInfo(context, contentTitle, contentText, // contentIntent); // notification.defaults = Notification.DEFAULT_ALL; // notificationManager.notify(iconId, notification); if (!nowNotificationList.contains(iconId)) { nowNotificationList.add(iconId); } //获取NotificationManager实例 NotificationManager mNotifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); //获取PendingIntent PendingIntent mainPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //创建 Notification.Builder 对象 NotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.exe_icon) //点击通知后自动清除 .setAutoCancel(true) .setContentTitle(contentTitle) .setContentText(contentText) .setDefaults(Notification.DEFAULT_ALL) .setContentIntent(mainPendingIntent); //发送通知 mNotifyManager.notify(iconId, builder.build()); } /** * 创建并发出以一个广播,只用闪光提示 * * @param context 上下文 * @param intent * @param iconId 广播ID * @param tickerText 设置显示提示信息,该信息也会在状态栏显示 * @param contentTitle 内容标题 * @param contentText 内容正文 */ public static void createNotificationOnlyLights(Context context, Intent intent, int iconId, CharSequence tickerText, CharSequence contentTitle, CharSequence contentText) { // NotificationManager notificationManager = (NotificationManager) context // .getSystemService(Activity.NOTIFICATION_SERVICE); // Notification notification = new Notification(iconId, tickerText, // System.currentTimeMillis()); // PendingIntent contentIntent = PendingIntent.getActivity(context, 0, // intent, PendingIntent.FLAG_UPDATE_CURRENT); // notification.setLatestEventInfo(context, contentTitle, contentText, // contentIntent); // notification.defaults = Notification.DEFAULT_LIGHTS; // notificationManager.notify(iconId, notification); if (!nowNotificationList.contains(iconId)) { nowNotificationList.add(iconId); } //获取NotificationManager实例 NotificationManager mNotifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); //获取PendingIntent PendingIntent mainPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //创建 Notification.Builder 对象 NotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.exe_icon) //点击通知后自动清除 .setAutoCancel(true) .setContentTitle(contentTitle) .setContentText(contentText) .setDefaults(Notification.DEFAULT_LIGHTS) .setContentIntent(mainPendingIntent); //发送通知 mNotifyManager.notify(iconId, builder.build()); } public static void createNotification(Context context, int iconId, CharSequence tickerText, CharSequence contentTitle, CharSequence contentText) { createNotification(context, iconId, tickerText, contentTitle, contentText, true); } /** * 创建一个广播 * * @param context 上下文 * @param iconId 广播ID * @param tickerText 设置显示提示信息,该信息也会在状态栏显示 * @param contentTitle 内容标题 * @param contentText 内容正文 * @param canCloseByClick 是否能通过点击取消 */ public static void createNotification(Context context, int iconId, CharSequence tickerText, CharSequence contentTitle, CharSequence contentText, boolean canCloseByClick) { // Intent intent = null; // if (canCloseByClick) // { // intent = new Intent(context, FrmNotificationCloser.class); // intent.putExtra(BaseActivity.KEY_NOTIFICATIONIDTOCLOSE, iconId); // } // NotificationManager notificationManager = (NotificationManager) context // .getSystemService(Activity.NOTIFICATION_SERVICE); // Notification notification = new Notification(iconId, tickerText, // System.currentTimeMillis()); // PendingIntent contentIntent = PendingIntent.getActivity(context, 0, // intent, PendingIntent.FLAG_UPDATE_CURRENT); // notification.setLatestEventInfo(context, contentTitle, contentText, // contentIntent); // notification.defaults = Notification.DEFAULT_ALL; // notificationManager.notify(iconId, notification); if (!nowNotificationList.contains(iconId)) { nowNotificationList.add(iconId); } //获取NotificationManager实例 NotificationManager mNotifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); //获取PendingIntent Intent intent = null; if (canCloseByClick) { intent = new Intent(context, FrmNotificationCloser.class); intent.putExtra(BaseActivity.KEY_NOTIFICATIONIDTOCLOSE, iconId); } PendingIntent mainPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); //创建 Notification.Builder 对象 NotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.exe_icon) //点击通知后自动清除 .setAutoCancel(true) .setContentTitle(contentTitle) .setContentText(contentText) .setDefaults(Notification.DEFAULT_ALL) .setContentIntent(mainPendingIntent); //发送通知 mNotifyManager.notify(iconId, builder.build()); } /** * 删除一个广播 * * @param context 上下文 * @param iconId 广播ID */ public static void closeNotification(Context context, int iconId) { // NotificationManager notificationManager = (NotificationManager) context // .getSystemService(Activity.NOTIFICATION_SERVICE); // notificationManager.cancel(iconId); if (nowNotificationList.contains(iconId)) { nowNotificationList.remove(new Integer(iconId)); } //获取NotificationManager实例 NotificationManager mNotifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); mNotifyManager.cancel(iconId); } /** * 判断广播是否存在 * * @param iconId 广播ID * @return */ public static boolean isNotificationAvailable(int iconId) { return nowNotificationList.contains(iconId); } }