通知は、アプリの UI の外で Android が表示するメッセージであり、リマインダー、他の人からのメッセージ、アプリからのタイムリーな情報などをユーザーに提供します。ユーザーは通知をタップしてアプリを開いたり、通知から直接操作したりできます。
このページでは、通知が表示される場所と利用できる機能について概説します。通知の作成方法については、 通知をご覧ください。
通知の設計と操作パターンについて詳しくは、通知のデザインガイドをご覧ください。
デバイスでの表示
通知は、さまざまな場所や形式でユーザーに自動的に表示されます。 通知は、ステータスバーのアイコン、通知ドロワー内の詳細なエントリ、アプリアイコンのバッジとして表示されます。通知も ペア設定されたウェアラブルに表示されます。
ステータスバーと通知ドロワー
通知を発行すると、最初にステータスバーにアイコンとして表示されます。
ステータスバーを下にスワイプすると通知ドロワーが開く 通知から詳細を確認したり、操作したりできます。
ドロワー内で通知を下にドラッグすると、ビューを展開できます。展開されたビューにはコンテンツがさらに表示され、操作ボタンも表示されます(存在する場合)。開始まであと Android 13 では、この展開されたビューにはユーザーが フォアグラウンドで実行中のアプリを サービス。
通知は、アプリまたはユーザーによって破棄されるまで通知ドロワー内に表示され続けます。
ヘッドアップ通知
Android 5.0 以降では、通知をフローティング ヘッドアップ通知と呼ばれるウィンドウを使用します。この動作は通常、ユーザーがすぐに知る必要がある重要な通知に適しており、デバイスがロック解除されている場合にのみ表示されます。
ヘッドアップ通知は、アプリが通知を発行すると表示されます。しばらくすると消えますが、通知ドロワーには通常どおり表示されたままになります。
ヘッドアップ通知のトリガーとなる条件には、次のようなものがあります。
ユーザーのアクティビティが全画面モードになっている(アプリが
fullScreenIntent
を使用している場合など)。通知の優先度が高く、通知に着信音またはバイブレーションが使用されている(Android 7.1(API レベル 25)以前が実行されているデバイス)。
デバイスで通知チャンネルの重要度が高い Android 8.0(API レベル 26)以降を搭載している。
ロック画面
Android 5.0 以降では、通知をロック画面に表示できます。
アプリから投稿された通知を 表示される詳細レベル(表示されている場合)
ユーザーはシステム設定を使用して、ロック画面に通知を表示する場合の詳細レベルを選択できます(ロック画面の通知をすべて無効にすることもできます)。まずは Android 8.0 では、ユーザーはアプリごとにロック画面の通知を無効または有効にできます。 通知チャンネル。
詳しくは、ロック画面を設定する 可視性。
アプリアイコンのバッジ
Android 8.0(API レベル 26)以降を搭載しているデバイスでサポートされているランチャーでは、 新しい通知は、アプリアイコンによって、色付きのバッジが表示されます。 通知ドットをタップします。
ユーザーはアプリアイコンを長押しすると、そのアプリの通知が表示されます。ユーザー 通知と同様に、このメニューから通知を非表示にしたり、操作したりできます。 引き出します。
バッジの仕組みについて詳しくは、通知バッジを変更するをご覧ください。
Wear OS デバイス
ペア設定済みの Wear OS デバイスがある場合は、ペア設定済みの Wear OS デバイスにすべての通知が表示されます。 展開可能な詳細や操作ボタンなどが 自動的に追加されます
Google Chat の設定の外観をカスタマイズして、 通知を受け取れます。また、次のようなさまざまなアクションを提供することもできます。 定型返信文や音声入力による返信を利用できます。詳しくは、ウェアラブル固有の機能を通知に追加する方法をご覧ください。
通知の構造
通知のデザインはシステム テンプレートによって決まります。アプリではテンプレートの各部分の内容を定義します。イベントの詳細を 通知は展開されたビューにのみ表示されます。
図 7 に通知の一般的な要素を示します。
- 小さいアイコン: 必須。以下を使用して設定します。
setSmallIcon()
。 - アプリ名: システムによって表示されます。
- タイムスタンプ: システムによって提供されますが、次のコマンドを使用してオーバーライドできます。
setWhen()
または次のコマンドを使用して非表示にします。setShowWhen(false)
。 - 大きいアイコン: 省略可。通常は連絡先の写真にのみ使用されます。
アプリアイコンには使用しないでください。設定方法
setLargeIcon()
。 - タイトル: 省略可。
setContentTitle()
を使用して設定します。 - テキスト: 省略可。
setContentText()
を使用して設定します。
Google Cloud 上での設計の互換性を適切に維持するには、システム テンプレートを あります。必要に応じて、カスタム通知レイアウトを作成できます。
これらの機能などを使用して通知を作成する方法について詳しくは、通知を作成するをご覧ください。
通知の操作
必須ではありませんが、すべての通知を開いておくことをおすすめします。 タップされたときに適切なアプリのアクティビティを表示できます。このデフォルトの設定に加え 通知アクションのほか、アプリ関連の操作を完了するための操作ボタンを追加できます。 通常はアクティビティを開かずに通知からタスクを実行できます。 図 8 に示します。
Android 7.0(API レベル 24)以降では、返信するアクションを追加して テキストを入力したり、通知から直接テキストを入力したりできます。
Android 10(API レベル 29)以降では、プラットフォームで、インテント ベースのアクションの候補を使ってアクション ボタンが自動的に生成されます。
アクション ボタンの追加については、 通知をご覧ください。
デバイスのロック解除を必須にする
デバイスのロック画面に通知の操作が表示されることがあります。もし 通知アクションを行うと、アプリがアクティビティを起動したり、ダイレクト リプライを送信したりします。 アプリが通知アクションを呼び出すには、ユーザーがデバイスのロックを解除する必要があります。
Android 12(API レベル 31)以降では、通知アクションを構成できます。 アプリがそのアクションを呼び出すには、デバイスのロックを解除する必要があります。 ワークフローが何であるかに関係なくこのオプションでは、 ロックされたデバイス通知に対するセキュリティも強化されます。
デバイスをロック解除するまでアプリが通知の操作を呼び出せないようにするには、次のコード スニペットに示すように、通知の操作を作成するときに true
を setAuthenticationRequired()
に渡します。
Kotlin
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Java
Notification moreSecureNotification = new Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build();
展開可能な通知
デフォルトでは、通知のテキスト コンテンツは 1 行に収まるように切り詰められます。通知に表示するテキストを増やしたい場合は、追加のテンプレートを適用することにより、展開可能なテキスト領域を拡大できます(図 9)。
展開可能な通知では、画像を含めたり、受信トレイのスタイルにしたり、チャットのスレッドやメディア再生コントロールを表示したりすることもできます。詳しくは 展開可能な通知を作成するをご覧ください。
通知の更新とグループ
追加情報がある場合に多数の通知や重複する通知がユーザーに送られないようにするために、新しい通知を発行する代わりに、既存の通知を更新することを検討してください。あるいは、受信トレイのスタイルの通知を使用して、スレッドの最新情報を表示することを検討してください。
ただし、複数の通知を送信する必要がある場合は、グループ化することを検討してください 個別の通知をグループに分割できます。Android 7.0 以降でご利用いただけます。
通知グループを使用すると、複数の通知を通知ドロワー内で 1 つの投稿にまとめて折りたたむことができます。図 10 に示すように、ユーザーは通知グループを徐々に展開して、グループ内の各通知の詳細を確認できます。
通知をグループに追加する方法については、通知グループを作成するをご覧ください。
通知チャンネル
Android 8.0(API レベル 26)以降では、すべての通知を 表示されません。これにより、ユーザーは特定の通知を無効にできます。 すべての通知を無効にする代わりに、ユーザーができること 各チャンネルの映像と音声のオプションを Android システムからコントロール 設定を行う必要があります(図 11 を参照)。また、通知を長押しすると、関連付けられているチャンネルの動作を変更できます。
Android 7.1(API レベル 25)以下を搭載したデバイスでは、ユーザーは アプリ単位でのみ設定できます。実質的に、各アプリに設定できるチャネルは 1 つのみである Android 7.1 以前のデバイスと同期できます。
アプリが発行する通知のタイプごとに異なるチャンネルを設定できます。また、ユーザーの選択に応じて通知チャンネルを作成することもできます。たとえば、サービス アカウントごとに別々の通知チャンネルを設定し、 メッセージ アプリでユーザーが作成した会話グループです。
Android 8.0 以降では、通知の重要度もチャンネルで指定するため、同じ通知チャンネルに送信された通知はすべて同じ動作になります。これについては、次のセクションで説明します。
詳細については、通知チャンネルを作成して管理するをご覧ください。
通知の重要度
Android では、通知の重要度を使用して、 視覚と聴覚でユーザーの邪魔をします。通知の重要度が高いほど、通知の表示と音が目立つようになります。
Android 7.1(API レベル 25)以前では、通知の重要度は通知の priority
によって決まります。
Android 8.0(API レベル 26)以降では、通知が送信されたチャンネルの importance
によって通知の重要度が決まります。ユーザーは通知の重要度を
通知チャンネルを設定します(図 12 を参照)。
使用できる重要度と、それに関連する通知の動作は次のとおりです。
緊急: 音が鳴り、ヘッドアップ通知として表示されます。
高: 音が鳴ります。
中: 音が鳴りません。
低: 音が鳴らず、ステータスバーにも表示されません。
重要度に関係なく、すべての通知が邪魔にならないシステムに表示される UI の場所(通知ドロワー内、ランチャーのバッジなど) アイコンをクリックします。ただし、通知の外観は変更できます。 バッジです。
詳しくは、 重要度を確認します。
サイレント モード
Android 5.0(API レベル 21)以降では、サイレント モードを有効にできます。 すべての通知の音とバイブレーションをオフにします。ユーザーが特に指定しない限り、システム UI には通常どおり通知が表示されます。
サイレント モードでは以下の 3 つのレベルを指定できます。
- サイレント: すべての音とバイブレーション(アラーム、音楽、動画、ゲームなど)をブロックします。
- アラームのみ: アラームを除くすべての音とバイブレーションをブロックします。
- 優先する通知のみ: システム全体で表示を許可するカテゴリを設定できます(アラーム、リマインダー、イベント、通話、メッセージのみなど)。メッセージと通話については、図 13 のように、送信者または発信者に基づいてフィルタできます。
Android 8.0(API レベル 26)以降では、ユーザーはさらに アプリ固有のカテゴリ(別名: チャンネルごとにサイレント モードをオーバーライドできます。たとえば、入出金に関連する通知チャンネルがある決済アプリの場合、ユーザーは引き出し通知、 通知のみ、または優先モードでは両方を選択できます。
Android 7.1(API レベル 25)以前が実行されているデバイスでは、チャンネル単位ではなくアプリ単位で通知を許可できます。
これらのユーザー設定の通知を構成するには、 システム全体 。
フォアグラウンド サービスの通知
アプリでフォアグラウンド サービス(メディア プレーヤーなど、長時間バックグラウンドで実行され、ユーザーが認識できる Service
)を実行している場合は通知が必要です。この通知は他の通知のように破棄することはできません。通知を削除するには、サービスを停止するか、フォアグラウンド状態を解除する必要があります。
詳細については、フォアグラウンド サービス。独自のメディアを作成する場合や メディアをバックグラウンドで再生するもご覧ください。
投稿数の上限
Android 8.1(API レベル 27)以降、アプリで通知音を鳴らすことはできません。 1 秒に 1 回以上ですアプリが 1 秒以内に複数の通知を送信した場合、通知はすべて想定どおりに表示されますが、音が鳴るのは各秒ごとに最初の通知だけです。
ただし、Android は通知の更新時にレート制限も適用します。1 つの通知の更新をあまりにも頻繁に(1 秒未満で何度も)送信すると、システムによって更新が破棄されることがあります。
通知の互換性
Android の通知システムの UI と通知関連の API は進化を続けてきました。古い通知をサポートしながら最新の通知 API 機能を使用する
Support Library Notification API を使用する
NotificationCompat
,
およびそのサブクラスである
NotificationManagerCompat
。
これにより、条件付きコードを作成して API レベルを確認する必要がなくなります(通知 API がこの処理を行うため)。
NotificationCompat
は、プラットフォームの進化に合わせて更新されており、最新のメソッドも追加されています。ただし、NotificationCompat
のメソッドを利用できるからといって、対応する機能が古いデバイスに提供されるとは限りません。場合によっては、新たに導入された API を呼び出しても、古いデバイスでは処理が行われないこともあります。
以下に、Android 通知の API レベル別の主な動作の変更点の概要を示します。
Android 5.0(API レベル 21)
ロック画面とヘッドアップ通知を導入しました。
スマートフォンをサイレント モードに設定できるようになりました。また、デバイスが「優先する通知のみ」モードになっている場合に表示する通知を設定できるようになりました。
ロック画面に通知を表示するかどうかを設定するメソッドを追加します。
setVisibility()
), 通知テキストの「公開」バージョンを指定します。通知の重要度をシステムに伝える
setPriority()
メソッドが追加されました。たとえば、優先度を高に設定すると、通知がヘッドアップ通知として表示されます。Android Wear(現在は Wear OS と呼ばれています)デバイスに通知スタックのサポートを追加しました。通知をスタックに登録するには、
setGroup()
を使用します。通知スタック(後にグループまたはバンドルと呼ばれる)は、Android 7.0(API レベル 24)まではタブレットやスマートフォンではサポートされていませんでした。
Android 7.0(API レベル 24)
通知テンプレートのスタイルを変更して、ヒーロー画像と 追加できます。
3 つの通知テンプレート(メッセージ アプリ用と他の 2 つ)を追加します。 コンテンツ ビューをデコレートするための拡張可能なアフォーダンスや システム デコレーション。
スマートフォンやタブレットなどのハンドヘルド デバイスで通知グループをサポートするようになりました。Android 5.0(API レベル 21)で導入された Android Wear(現在は Wear OS と呼ばれています)通知スタックと同じ API を使用します。
ユーザーがインライン返信を使用して通知内で返信できるようにします。入室 その後、通知の親アプリにルーティングされます。
Android 8.0(API レベル 26)
個々の通知が特定のメッセージに チャンネル。
ユーザーは、アプリからの通知をすべてオフにする代わりに、チャンネルごとに通知をオフにできます。
有効な通知があるアプリの上部に通知バッジを表示する アプリアイコンをタップまたはクリックします。
ユーザーがドロワーから通知をスヌーズできるようになりました。自動設定または 指定することもできます。
通知の背景色を設定できます。
通知の動作に関する一部の API を
Notification
からNotificationChannel
に移動しました。たとえば、Android 8.0 以降の場合はNotificationCompat.Builder.setPriority()
ではなくNotificationChannel.setImportance()
を使用します。
Android 13.0(API レベル 33)
Android 14.0、API レベル 34
全画面インテントの通知を、通話やアラームを提供するアプリに制限します。
NotificationManager.canUseFullScreenIntent
API を使用して、アプリに権限があるかどうかを確認します。権限がない場合、アプリはACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
を使用して、ユーザーが権限を付与できる設定ページを起動できます。次の機能を許可することで、閉じることができない通知のユーザー エクスペリエンスを改善します。 通知アクションが閉じられていても、ユーザーが
Notification.FLAG_ONGOING_EVENT
フラグが設定されている。次の場合は対象外です。Notification.FLAG_ONGOING_EVENT
フラグが次の場合にCallStyle
通知 Device Policy Controller(DPC)とサポート パッケージを できます。また、スマートフォンがロックされている場合や、 [すべてクリア] を選択する。