Android-notifications
Android-通知
'_*通知*は、アプリケーションの通常のUI以外でユーザーに表示できるメッセージです。 システムに通知を発行するように指示すると、最初に通知領域にアイコンとして表示されます。 通知の詳細を表示するには、ユーザーは通知ドロワーを開きます。 通知領域と通知ドロワーはどちらも、ユーザーがいつでも表示できるシステム制御の領域です。_
Android Toast クラスはユーザーにアラートを表示する便利な方法を提供しますが、問題はこれらのアラートが永続的ではないことです。つまり、画面上でアラートが数秒間点滅して消えます。
通知の詳細を表示するには、通知に関する詳細を含む通知ドロワーを表示するアイコンを選択する必要があります。 仮想デバイスでエミュレーターを使用しているときに、ステータスバーをクリックして下にドラッグして展開し、次のように詳細を表示する必要があります。 これはちょうど 64 dp の高さで、通常ビューと呼ばれます。
上記の拡張フォームには、通知に関する追加の詳細が表示される*ビッグビュー*を含めることができます。 通知には最大6行を追加できます。 次のスクリーンショットは、そのような通知を示しています。
通知を作成して送信する
通知を作成する簡単な方法があります。 アプリケーションで次の手順に従って、通知を作成します-
ステップ1-通知ビルダーを作成する
最初のステップは、_NotificationCompat.Builder.build()_を使用して通知ビルダーを作成することです。 Notification Builderを使用して、小さいアイコンや大きいアイコン、タイトル、優先度などのさまざまな通知プロパティを設定します。
手順2-通知プロパティの設定
- * setSmallIcon()*で設定された小さなアイコン
- * setContentTitle()*で設定されたタイトル
- 詳細テキスト、* setContentText()*で設定
通知用に設定できるオプションのプロパティがたくさんあります。 それらの詳細については、NotificationCompat.Builderのリファレンスドキュメントを参照してください。
ステップ3-アクションの添付
これはオプションの部分であり、通知にアクションを添付する場合に必要です。 アクションを使用すると、ユーザーは通知からアプリケーションの*アクティビティ*に直接移動し、1つ以上のイベントを確認したり、さらに作業を行うことができます。
アクションは、アプリケーションでアクティビティを開始する Intent を含む PendingIntent によって定義されます。 PendingIntentをジェスチャーに関連付けるには、_NotificationCompat.Builder_の適切なメソッドを呼び出します。 たとえば、ユーザーが通知ドロワーで通知テキストをクリックしたときにアクティビティを開始する場合は、* setContentIntent()*を呼び出してPendingIntentを追加します。
PendingIntentオブジェクトを使用すると、アプリケーションが実行されているかどうかを気にせずに、多くの場合、後でアプリケーションに代わってアクションを実行できます。
開始されたアクティビティの人工的なバックスタックを含むスタックビルダーオブジェクトを利用します。 これにより、アクティビティから逆方向にナビゲートすると、アプリケーションからホーム画面に移動できます。
ステップ4-通知を発行する
最後に、NotificationManager.notify()を呼び出して通知を送信することにより、Notificationオブジェクトをシステムに渡します。 通知する前に、Builderオブジェクトで* NotificationCompat.Builder.build()メソッドを必ず呼び出してください。 このメソッドは、設定されているすべてのオプションを組み合わせて、新しい *Notification オブジェクトを返します。
NotificationCompat.Builderクラス
NotificationCompat.Builderクラスを使用すると、すべてのフラグを簡単に制御できるだけでなく、一般的な通知レイアウトを構築できます。 以下は、NotificationCompat.Builderクラスの一部として使用できる、いくつかの重要で最も頻繁に使用されるメソッドです。
Sr.No. | Constants & Description |
---|---|
1 |
Notification build() 設定されているすべてのオプションを組み合わせて、新しい通知オブジェクトを返します。 |
2 |
NotificationCompat.Builder setAutoCancel (boolean autoCancel) このフラグを設定すると、ユーザーがパネルで通知をクリックしたときに通知が自動的にキャンセルされます。 |
3 |
NotificationCompat.Builder setContent (RemoteViews views) 標準のものの代わりに使用するカスタムRemoteViewsを提供します。 |
4 |
NotificationCompat.Builder setContentInfo (CharSequence info) 通知の右側に大きなテキストを設定します。 |
5 |
NotificationCompat.Builder setContentIntent (PendingIntent intent) 通知がクリックされたときに送信するPendingIntentを指定します。 |
6 |
NotificationCompat.Builder setContentText (CharSequence text) 標準通知で、通知のテキスト(2行目)を設定します。 |
7 |
NotificationCompat.Builder setContentTitle (CharSequence title) 標準通知で、通知のテキスト(最初の行)を設定します。 |
8 |
NotificationCompat.Builder setDefaults (int defaults) 使用されるデフォルトの通知オプションを設定します。 |
9 |
NotificationCompat.Builder setLargeIcon (Bitmap icon) ティッカーと通知に表示される大きなアイコンを設定します。 |
10 |
NotificationCompat.Builder setNumber (int number) 通知の右側に大きな数字を設定します。 |
11 |
NotificationCompat.Builder setOngoing (boolean ongoing) これが継続的な通知かどうかを設定します。 |
12 |
NotificationCompat.Builder setSmallIcon (int icon) 通知レイアウトで使用する小さなアイコンを設定します。 |
13 |
NotificationCompat.Builder setStyle (NotificationCompat.Style style) ビルド時に適用される豊富な通知スタイルを追加します。 |
14 |
NotificationCompat.Builder setTicker (CharSequence tickerText) 通知が最初に到着したときにステータスバーに表示されるテキストを設定します。 |
15 |
NotificationCompat.Builder setVibrate (long[] pattern) 使用する振動パターンを設定します。 |
16 |
NotificationCompat.Builder setWhen (long when) イベントが発生した時刻を設定します。 パネル内の通知は、この時間でソートされます。 |
例
次の例は、Android 4.1で導入された NotificationCompat.Builder クラスを使用したAndroid通知の機能を示しています。
Step | Description |
---|---|
1 | You will use Android studio IDE to create an Android application and name it as finddevguides under a package com.example.notificationdemo. |
2 | Modify src/MainActivity.java file and add the code to notify(""), if user click on the button,it will call android notification service. |
3 | Create a new Java file src/NotificationView.java, which will be used to display new layout as a part of new activity which will be started when user will click any of the notifications |
4 | Modify layout XML file res/layout/activity_main.xml to add Notification button in relative layout. |
5 | Create a new layout XML file res/layout/notification.xml. This will be used as layout file for new activity which will start when user will click any of the notifications. |
6 | No need to change default string constants. Android studio takes care of default string constants |
7 | Run the application to launch Android emulator and verify the result of the changes done in the application. |
以下は、変更されたメインアクティビティファイル src/com.example.notificationdemo/MainActivity.java の内容です。 このファイルには、基本的な各ライフサイクルメソッドを含めることができます。
以下は res/layout/notification.xml ファイルの内容です-
以下は、変更されたメインアクティビティファイル src/com.example.notificationdemo/NotificationView.java の内容です。
以下は res/layout/activity_main.xml ファイルの内容です-
以下は、2つの新しい定数を定義する res/values/strings.xml の内容です-
以下は、 AndroidManifest.xml のデフォルトのコンテンツです-
- ボタン*をクリックすると、上部に「New Message Alert!」というメッセージが表示されます。一時的に表示され、その後、左上隅に小さなアイコンを持つ次の画面が表示されます。
次に、ビューを展開し、小さなアイコンを長押しすると、1秒後に日付情報が表示されます。これは、マウスを離さずにステータスバーを下にドラッグする時間です。 ステータスバーが展開し、次の画面が表示されます-
ビッグビュー通知
次のコードスニペットは、前のスニペットで作成された通知を変更して、受信トレイのビッグビュースタイルを使用する方法を示しています。 この機能を示すためにdisplayNotification()変更メソッドを更新します-
これで、アプリケーションを実行しようとすると、ビューの展開された形式で次の結果が見つかります-