SIN@SAPPOROWORKSの覚書

C#を中心に、夜な夜な試行錯誤したコードの記録です。

Xamarin.Android 通知

【 Xamarin 記事一覧 】

1 通知

001

002

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 バイブレーション

003
通知の際にバイブレーションさせるというのは、ありがちが動作だと思います。

バイブレーションを使用するためには、マニュフェストに指定が必要です。
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 };

【 Xamarin 記事一覧 】