差分

ナビゲーションに移動 検索に移動

Xamarin.Androidで通知を表示しアプリを起動する

2,405 バイト追加, 2019年1月23日 (水) 01:59
ページの作成:「Xamarin.Androidで、通知を表示し、通知欄がタップされたらアプリを起動したい。 いわゆる「〇〇さんからメッセージが届き…」
[[Xamarin.Android]]で、通知を表示し、通知欄がタップされたらアプリを起動したい。

いわゆる「〇〇さんからメッセージが届きました」と表示されタップするとメッセンジャーが起動するアレを実装したい。

<source lang="csharp">
using Android.App;
using Android.Widget;
using Android.OS;

using Android.Content;// Intent
using Android.Support.V4.App; // Notification

[Activity(Label = "NofiticationExample", MainLauncher = true, Icon = "@mipmap/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);

// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.myButton);

button.Click += (s, e) => Notification();
}

void Notification()
{
var context = this;

var manager = (NotificationManager)context.GetSystemService(Context.NotificationService);

// アクティビティを起動するインテント
// Flagsなどは用途に応じて適宜書き換える。
var intent = context.PackageManager
.GetLaunchIntentForPackage(context.PackageName)
.AddFlags(ActivityFlags.ClearTop);

// PendingIntentを噛ますことで、インテントを直ちに発行するのではなく、
// 通知欄をタップされたタイミングで発行する
var pendingIntent = PendingIntent.GetActivity(context, 0, intent, PendingIntentFlags.UpdateCurrent);

// 通知を生成
var message = "Hello, World!";
var builder = new NotificationCompat.Builder(context)
.SetSmallIcon(Android.Resource.Drawable.StarBigOn)
.SetContentTitle("Boop!")
.SetStyle(new NotificationCompat.BigTextStyle().BigText(message))
.SetContentText(message)
.SetContentIntent(pendingIntent);

// 通知を発射
manager.Notify(1, builder.Build());
}
}
</source>


[[category: Xamarin.Android]]
匿名利用者

案内メニュー