Android Notificationの詳細-notificationの作成


最近、プロジェクトに各種の通知を追加しなければならなくて、通知が多くて、更に各種の設備の上でデバッグを加えて、いつも各種の予想外の問題が現れて、いっそNotificationのAPI Guideを全部見て、ついでに記録をします.
 
まず、Notificationを作成する方法を簡単に復習します.通知の作成には、NotificationとNotificationManagerの2つの重要なクラスが必要です.
 
Notificationクラスでは、アイコン、メッセージ、通知を表示するときに音や振動が必要かどうかなど、ステータスバー通知のさまざまなプロパティを定義します.
NotificationManagerクラスは、すべての通知を管理するAndroidシステムのサービスです.
 
 
次のコードは、簡単な通知を作成するために使用されます.
 
//   NotificationManager   
NotificationManager mNM = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
	
//     Notification  
int icon = R.drawagle.notification_icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMills();
Notification notification = new Notification(icon, tickerText, when);
notification.flags |= Notification.DEFAULT_ALL;

//   Notification title、message、 pendingIntent
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!"
Intent notificationIntent = new Intent(this, myClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
	
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

//        Notification
private static final int HELLO_ID = 1;
mNM.notify(HELLO_ID, notification);
 
次に、Notificationを作成するにはどのような問題を考慮する必要がありますかについて詳しく説明します.
 
通知には、次の内容が含まれている必要があります.
 
  • ステータスバーのアイコン
  • titleとmessage(カスタムlayoutであれば不要)
  • PendingIntent、通知をクリックすると
  • がトリガーされます.
    他にもいくつかのオプションがあります.
  • ticker-textとは、通知が来るとstatus bar上でスクロールするコンテンツ
  • である.
  • 振動、音、ledランプ指示
  • Notificationオブジェクトを作成するには、Notificationのコンストラクタを使用する必要があります.
     
    Notification notification = Notification(int icon, CharSequence tickerText, long when);
      
    次の関数を使用してPendingIntentを作成します.
     
    PendingIntent contentIntent = PendingIntent.getActivity (Context context, int requestCode, Intent intent, int flags);
      
    次に、次の関数設定を使用して作成したNotificationオブジェクトを設定します.
     
    notification.setLatestEventInfo(Context context, CharSequence  contentTitle, CharSequence  contentText, PendingIntent contentIntent);
      
    音や振動など、notificationのさまざまなプロパティを定義できます.
    notificationにサウンドを追加するには:
     
    notification.defaults |= Notification.DEFAULT_SOUND; //           

    または
    notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3"); //    URI                 

    または
    notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6"); //         

     
    notificationに振動を追加するには:
     
    notification.defaults |= Notification.DEFAULT_VIBRATE; //      

    または
    long[] vibrate = {0,100,200,300};
    notification.vibrate = vibrate; //          
     
    notificationにledインジケータを追加するには、次の手順に従います.
    notification.defaults |= Notification.DEFAULT_LIGHTS; //      

    または
    notification.ledARGB = 0xff00ff00;
    notification.ledOnMS = 300;
    notification.ledOffMS = 1000;
    notification.flags |= Notification.FLAG_SHOW_LIGHTS; //     
    
     
    その他の属性は、Notificationの文書http://developer.android.com/reference/android/app/Notification.htmlを参照してください.