ノーティフィケーション(Notification)と
ノーティフィケーションマネージャ(NotificationManager)を使用します
NotificationとはAndroidのホーム画面最上段のステータスバーに表示される物で
例えば、バックグラウンドでメールを受信した時に
アイコンを出して新規メールがある事をユーザに伝えるために使用されます
一方Notification ManagerはNotificationを管理し
Notificationを画面に表示、非表示をするためのマネージャークラスです
Notification Managerにはコンストラクタは存在せずインスタンスは
getSystemService(NOTIFICATION_SERVICE)で取得します
ステータスバーに情報を通知する
実際にステータスバーに通知を表示させてみたいと思います
まずNotificationManagerの参照を取得します
getSystemService(NOTIFICATION_SERVICE);
で取得しに行きます
次にNotificationクラスを生成します
これは new Notificationで作成します
そしてnotificationが選択された場合に発行するintentをPendingIntentを作成します
これは表示されたアプリ一覧を選択したときに
そのアプリに移動する(インテント)動作を設定しています
最後に通知する情報をsetLatestEventInfoにて設定します
実際のプログラムを以下に示します
作成したのを実行するとステータスバーに通知が出ます
その通知を選択するとアプリ一覧が表示され
それを押すと押したアプリにジャンプするものです
MainActivity.java
package blog.test; import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // PendingIntentの生成 Intent intent = new Intent(Intent.ACTION_VIEW); PendingIntent pendIntent = PendingIntent.getActivity(this, 0, intent, 0); // NotificationManagerのインスタンスを取得 NotificationManager notifManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); // Notificationのインスタンスの生成 Notification notif = new Notification(); //通知の際のアイコン設定 notif.icon = R.drawable.ic_launcher; notif.tickerText = "通知です"; notif.setLatestEventInfo(getApplicationContext(), "タイトル:アプリ名", "メッセージ:これは通知情報です", pendIntent); // Notificationの通知 notifManager.notify(R.string.app_name, notif); } }
実際に実行してみました
まずは通知領域にメッセージとアイコンが出てきます
今回はアイコンを設定していないのでドロイド君が出てきました
通知領域を広げると作成メッセージとタイトルが表示されます
選択するとアプリ一覧が表示されます
(取得アプリがいまいちですw修正予定ww)
またNotificationManagerはシンプルですが用途は多岐にわたります
バイブレーションを動作させることなどもできます
他の使用方法も作成予定です
スポンサードリンク