Android でのメッセージ通知の簡単な使用

通知を送信する

メッセージ通知は、Activity、BroadcastReceiver、およびサービスで作成できますが、どこで作成しても、全体的な手順は基本的に同じです。Android では通知機能を有効にするために通知チャネルを使用します。通知チャネルは一度設定すると変更できないため、通知チャネルを作成する際は慎重に分類することをお勧めします。チャネルが作成されると、そのチャネルを通じて通知が送信されます。Android で通知を使用する方法は、通常 4 つのステップに分かれています。

最初のステップでは、チャネルを作成し、通知チャネルを管理するためのNotificationManagerを作成します。

ここでの as は必須の型変換です。Android 8.0で通知機能が追加されたため、バージョンを判断する必要がある Build.VERSION_CODES.OがAndroid 8.0のバージョンを表す チャンネル作成のNotificationChannelメソッドには、channelId(チャンネルID、気軽に書いてください)の3つのパラメータが渡されます, 一意である限り)、channelName(チャンネルの名前、ユーザーが見るため、何気なく書くだけでユーザーが理解できるもの)、重要性(重要性、慎重に使用する、ユーザーに嫌がらせをするため、主に以下のものがあります) IMPORTANCE_HIGH、IMPORTANCE_DEFAULT、IMPORTANCE_LOW、IMPORTANCE_MIN のタイプ (異なるレベルのメッセージは異なる形式でユーザーにプッシュされます) を作成し、管理を容易にするためにこのチャネルをマネージャーに追加します。

val manager=getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
   if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
            val channel=NotificationChannel(channelId,channelName,importance)
            manager.createNotificationChannel(channel)
     }

2 番目のステップは、Builder コンストラクターを使用して、Notification オブジェクトを作成することです。ここでは、NotificationCompat クラスのコンストラクターを選択してオブジェクトを作成します。

このコンストラクターには、 context (コンテキスト)、channelId (チャネル ID、上記と一致している必要があります。そうでないと、どのチャネルを介して送信すればよいかわかりません) という 2 つのパラメーターが必要で、最後に作成するビルド メソッドを呼び出します

val notification=NotificationCompat.Builder(context,channelId).build()

3 番目のステップは、Notification オブジェクトの build メソッドを実行する前に通知の内容を補足して、通知メッセージを充実させることです。

メッセージの内容を入力し、通知の内容を充実させます。タイトル、テキストの内容、ステータス バーの表示アイコンを設定し、通知バーのアイコンをドロップダウンし、最後にビルド メソッドを呼び出して作成を完了します。 。

val notification=NotificationCompat.Builder(context,channelId)
            .setContentTitle("this is a notification")
            .setContentText("this is text")
            .setSmallIcon(R.drawable.small_icon)
            .setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.Large_icon))
            .build()
        }

4 番目のステップは、通知メッセージをアクティブにすることです。

マネージャーの通知メソッドを使用してメッセージをアクティブ化し、送信します。このメソッドには2 つのパラメータが必要です。ここでは 1 (メッセージ ID を表し、必要なものを何でも書きます。1 つだけで問題ありません)、notification は上で書いた通知メッセージです

manager.notify(1,notification)

通知をクリックしてページに入ります

メッセージをクリックして特定のページに移動する機能を実現するには、PendingIntent も使用されます。これはインテントと似ていますが、インテントは即時に実行されるのに対し、PendingIntent は適切なタイミングで実行される点が異なります。PendingIntent の getActivity メソッドを使用して、クリック送信イベントを完了します。このメソッドには4 つのパラメータがあります。最初のパラメータはコンテキスト、2 番目のパラメータです (それが何かはわかりません。通常は使用されません。0 を渡すだけです) , 3 つ目は構築した Intent、4 つ目は PendingIntent の動作に使用され、値が 4 つあります。使用するときにドキュメントで確認できます。通常は 0 を渡すだけです。メッセージに .setContextIntent(pi) を追加してイベントをメッセージに書き込みます。クリックすると、インテントに従ってページに送信されます。次に、 .setAutoCancel(true) を追加して、クリック後にメッセージが自動的に消えるようにします。

val intent=Intent(this,NotificationActivity::class.java)
val pi=PendingIntent.getActivity(this,0,intent,0)
val notification=NotificationCompat.Builder(context,channelId)
            .setContentTitle("this is a notification")
            .setContentText("this is text")
            .setSmallIcon(R.drawable.small_icon)
            .setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.Large_icon))
            .setContextIntent(pi)
            .setAutoCancel(true)
            .build()
        }

リッチテキスト通知を作成する

これには、setStyle メソッドを使用する必要があります。

val intent=Intent(this,NotificationActivity::class.java)
val pi=PendingIntent.getActivity(this,0,intent,0)
val notification=NotificationCompat.Builder(context,channelId)
    .setContentTitle("this is a notification")
    .setContentText("this is text")
    .setSmallIcon(R.drawable.small_icon)
    .setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.Large_icon))
    .setContextIntent(pi)
    .setAutoCancel(true)
    .setStyle(NotificationCompat.BigTextStyle().bigText("Learn how to build notifications, send and sync data, and use voice actions. Get the official Android IDE and developer tools to build apps for Android."))
    .setStyle(NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(resources, R.drawable.big_image)))
    .build()
}

build メソッドの前に、setStyle メソッドを使用してテキストと大きな画像を追加すると、次のようなリッチ テキストを構築できます。

 

 

おすすめ

転載: blog.csdn.net/liny70858/article/details/127273902
おすすめ