NotificationManager和Notification的使用總結
//建立一個NotificationManager的引用
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager)getSystemService(ns);
//定義Notification的各種屬性
int icon = R.drawable.icon; //通知圖示
CharSequence tickerText = "Hello"; //狀態列顯示的通知文字提示
long when = System.currentTimeMillis(); //通知產生的時間,會在通知資訊裡顯示
//用上面的屬性初始化Nofification
Notification notification = new Notification(icon,tickerText,when);
/*
* 新增聲音
* notification.defaults |=Notification.DEFAULT_SOUND;
* 或者使用以下幾種方式
* notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");
* notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");
* 如果想要讓聲音持續重複直到使用者對通知做出反應,則可以在notification的flags欄位增加"FLAG_INSISTENT"
* 如果notification的defaults欄位包括了"DEFAULT_SOUND"屬性,則這個屬性將覆蓋sound欄位中定義的聲音
*/
/*
* 新增振動
* notification.defaults |= Notification.DEFAULT_VIBRATE;
* 或者可以定義自己的振動模式:
* long[] vibrate = {0,100,200,300}; //0毫秒後開始振動,振動100毫秒後停止,再過200毫秒後再次振動300毫秒
* notification.vibrate = vibrate;
* long陣列可以定義成想要的任何長度
* 如果notification的defaults欄位包括了"DEFAULT_VIBRATE",則這個屬性將覆蓋vibrate欄位中定義的振動
*/
/*
* 新增LED燈提醒
* notification.defaults |= Notification.DEFAULT_LIGHTS;
* 或者可以自己的LED提醒模式:
* notification.ledARGB = 0xff00ff00;
* notification.ledOnMS = 300; //亮的時間
* notification.ledOffMS = 1000; //滅的時間
* notification.flags |= Notification.FLAG_SHOW_LIGHTS;
*/
/*
* 更多的特徵屬性
* notification.flags |= FLAG_AUTO_CANCEL; //在通知欄上點選此通知後自動清除此通知
* notification.flags |= FLAG_INSISTENT; //重複發出聲音,直到使用者響應此通知
* notification.flags |= FLAG_ONGOING_EVENT; //將此通知放到通知欄的"Ongoing"即"正在執行"組中
* notification.flags |= FLAG_NO_CLEAR; //表明在點選了通知欄中的"清除通知"後,此通知不清除,
* //經常與FLAG_ONGOING_EVENT一起使用
* notification.number = 1; //number欄位表示此通知代表的當前事件數量,它將覆蓋在狀態列圖示的頂部
* //如果要使用此欄位,必須從1開始
* notification.iconLevel = ; //
*/
//設定通知的事件訊息
Context context = getApplicationContext(); //上下文
CharSequence contentTitle = "My Notification"; //通知欄標題
CharSequence contentText = "Hello World!"; //通知欄內容
Intent notificationIntent = new Intent(this,Main.class); //點選該通知後要跳轉的Activity
PendingIntent contentIntent = PendingIntent.getActivity(this,0,notificationIntent,0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
//把Notification傳遞給NotificationManager
mNotificationManager.notify(0,notification);