libro
www.tuyano.com
Google androidプログラミング入門

ノーティフィケーションの利用 (3/5)

作成:2011-10-10 10:37
更新:2011-10-10 10:37

■Notificationのプロパティ

ノーティフィケーション利用の最大のポイントは、もちろんNotificationクラスです。これは、インスタンスを作成し、各種のプロパティを設定してNotificationManagerに登録する、という流れになっていました。

先のサンプルでは、挙動に関するフラグ設定、アイコンといったものだけを指定しましたが、この他にもプロパティはいろいろと用意されています。重要なものについてここで整理しておきましょう。

flagプロパティ
先ほどはサラっと流しましたが、これはint値のプロパティで、あらかじめ用意されているクラスフィールドを使って値を指定します。以下のようなものが用意されています。

FLAG_AUTO_CANCEL――自動的にキャンセルされる
FLAG_NOCLEAR――選んでも消えない
FLAG_FOREGROUND――フォアグラウンドで機能する
FLAG_INSISTENT――サウンドなどを繰り返し強調する
FLAG_ONGOING_EVENT――On Going(実行中)の中にグループ化する
FLAG_ONLY_ALERT_ONCE――サウンドやバイブレーションなどは1度だけ
FLAG_SHOW_LIGHTS――デフォルトのライト使用
FLAG_HIGH_PRIORITY――ハイプライオリティ(高優先度で)

tickerTextプロパティ
ステータスバーに右から左に流れるメッセージ(ティッカーテキスト)を設定するものです。表示させるメッセージのテキストを指定します。

ledARGBプロパティ
 LED点灯時の色を指定するためのものです。ノーティフィケーションが表示されるとき、LEDを指定の色で点灯させます。値は、ARGB各輝度を16進数で指定します。例えば、「0xffff0000」と値を指定すれば赤になります。これは、flagFLAG_SHOW_LIGHTSが設定されていないと表示されないので注意してください。

ledOnMS/ledOffMSプロパティ
LEDの点滅時間を指定するものです。ledOnMSは点灯している時間、ledOffMSは消えている時間を指定するもので、いずれもミリ秒換算の整数で指定します。これもflagFLAG_SHOW_LIGHTSが設定されている必要があります。

soundプロパティ
ノーティフィケーションを表示する際に再生するサウンドを指定するものです。これは、再生するサウンドファイルのパスを指定したUriインスタンスで設定をします。デフォルトの警告音をそのまま鳴らすなら、android.provider.Settings.System.DEFAULT_NOTIFICATION_URIを指定します。

vibrateプロパティ
バイブレーションの指定を行うものです。これは、OFFとONの時間をミリ秒で表したint配列を用意し設定します。また、バイブレーションを利用するためには、AndroidManifest.xml<manifest>タグの中に、以下のタグを追記します。
<uses-permission android:name="android.permission.VIBRATE" />

これらのプロパティを使うことで、LEDやバイブレーション、サウンドなどをノーティフィケーションで利用することができます。下に、簡単な利用例を挙げておきました。これで緑色でLEDを点滅させることができるはずです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

public void doAction(View view){
	Intent intent = new Intent(this,jp.tuyano.sample.MySampleActivity.class);
	PendingIntent pending = PendingIntent.getActivity(this, 0, 
			intent, PendingIntent.FLAG_CANCEL_CURRENT);
	Notification notify = new Notification();
	notify.flags = Notification.FLAG_AUTO_CANCEL;
	notify.icon = R.drawable.icon;
	notify.ledARGB = 0xff00ff00;
	notify.ledOnMS = 500;
	notify.ledOffMS = 500;
	notify.setLatestEventInfo(this, "TEST INFO", 
			"テストのノーティフィケーションです。", pending);
	NotificationManager manager = (NotificationManager)this.
			getSystemService(Activity.NOTIFICATION_SERVICE);
	manager.notify(0, notify);
}
※関連コンテンツ

「Google androidプログラミング入門」に戻る