Xamarin.Android 通知
1 通知
androidの画面の上部にあるステータスバーに表示されるメッセージをドラッグすると「通知」の領域が表示されます。「通知」の領域で対象メッセージを選択すると、Intentが発行され、このIntentに基づいた処理(アクティビティの表示など)が行われます。
サービスなどが、情報を表示したり、選択を迫る場合などに使用されるのが一般的だと思います。
「通知」を行うためのコードは下記のとおりです。
//NotificationManagerへの参照を取得 var nManager = (NotificationManager)GetSystemService(NotificationService); //Notificationを生成 const int when = 5; //メッセージ表示時間 var notification = new Notification(Resource.Drawable.Icon, "画面上部に表示されるメッセージ",when); //選択された場合に発行するIntentの作成 var intent = new Intent(this, typeof (Activity2)); //IntentをPendingIntentで包む var pendingIntent = PendingIntent.GetActivity(this, 0, intent , 0); //Notificationへの設定 notification.SetLatestEventInfo(this, "通知欄に表示されるタイトル", "通知欄に表示されるメッセージ", pendingIntent); //NotificationManagerへの設定 var id=0; nManager.Notify(id, notification);
2 通知の削除
通知を削除するには、NotificationManagerのCalcelメソッドを使用します。
新しく表示されたActivityで、当該通知を削除する等が、一般的な処理になるのでしょうか。
//NotificationManagerへの参照を取得 var nManager = (NotificationManager)GetSystemService(NotificationService); var id=0; nManager.Cancel(id);
3 バイブレーション
通知の際にバイブレーションさせるというのは、ありがちが動作だと思います。
バイブレーションを使用するためには、マニュフェストに指定が必要です。
Xamarinでは、これをプロジェクトのプロパティから行います。
プロパティでチェックを付けると、自動生成されるAndroidManifest.xmlには、下記の行が追加されます。
<uses-permission android:name="android.permission.VIBRATE" />
コードとしては、Notificationに設定するだけです。
なお、下記のコードでは、Notificationを空のコンストラクタで生成しているため、表示等は行われずバイブレーションのみの動作となります。
var notification = new Notification(); notification.Vibrate = new long[] { 0, 200, 100, 200, 100, 200 };