通知の概要

通知とは、Android がアプリの UI の外側に表示されるメッセージで、 通知や他のユーザーからのメッセージなど、 提供します。ユーザーは通知をタップして 通知から直接操作できます。

このページでは、通知が表示される場所と利用できる機能について概説します。通知の作成方法については、 通知をご覧ください。

通知のデザインと操作パターンについて詳しくは、このモジュールの 通知のデザイン ガイドをご覧ください。

デバイスでの表示

通知は、さまざまな場所や形式でユーザーに自動的に表示されます。 通知はステータスバーのアイコンとして表示され、 アプリのアイコンにバッジが表示されます。通知も ペア設定されたウェアラブルに表示されます。

ステータスバーと通知ドロワー

通知を発行すると、まずステータスバーにアイコンとして表示されます。

図 1. ステータスの左側に通知アイコンが表示される 表示されます。

ステータスバーを下にスワイプすると通知ドロワーが開く 通知から詳細を確認したり、操作したりできます。

図 2. 通知ドロワー内の通知

ドロワー内で通知を下にドラッグすると、ビューを展開できます。展開されたビューにはコンテンツがさらに表示され、操作ボタンも表示されます(存在する場合)。開始まであと Android 13 では、この展開されたビューにユーザーが フォアグラウンドで実行中のアプリを サービス

通知は閉じるまで通知ドロワーに表示されたままになる 許可または拒否できます

ヘッドアップ通知

Android 5.0 以降では、通知をフローティング ヘッドアップ通知と呼ばれるウィンドウを使用します。通常、この動作は、 ユーザーがすぐに知る必要のある通知が、 (デバイスのロックが解除されている場合)

図 3. ヘッドアップ通知が フォアグラウンド アプリ。

ヘッドアップ通知は、アプリが通知を発行するときに表示されます。これは、 しばらくすると消えますが、通知ドロワーには 。

ヘッドアップ通知のトリガーとなる条件には、次のようなものがあります。

  • ユーザーのアクティビティが全画面モードである(アプリが fullScreenIntent

  • 通知の優先度が高く、着信音やバイブレーションを使用する Android 7.1(API レベル 25)以前を搭載したデバイス

  • デバイスで通知チャンネルの重要度が高い Android 8.0(API レベル 26)以降を搭載している。

ロック画面

Android 5.0 以降では、通知をロック画面に表示できます。

アプリから投稿された通知を 表示される詳細レベル(表示されている場合)

ユーザーはシステム設定でロックの詳細レベルを選択できます ロック画面の通知をすべて無効にできます。まずは Android 8.0 では、ユーザーはアプリごとにロック画面通知を無効または有効にできます。 通知チャンネル。

図 4. プライベートなコンテンツを含むロック画面上の通知 非表示になっています。

詳しくは、ロック画面を設定する 可視性

アプリアイコンのバッジ

Android 8.0(API レベル 26)以降を搭載しているデバイスでサポートされているランチャーでは、 新しい通知は、アプリアイコンによって、色付きのバッジが表示されます。 通知ドットをタップします。

ユーザーはアプリアイコンを長押しすると、そのアプリの通知が表示されます。ユーザー 通知と同様に、このメニューから通知を非表示にしたり、操作したりできます。 引き出します。

図 5. 通知バッジ、タップ&メニューを長押しします。

バッジの仕組みについて詳しくは、通知を変更する バッジです。

Wear OS デバイス

ペア設定済みの Wear OS デバイスがある場合は、ペア設定済みの Wear OS デバイスにすべての通知が表示されます。 展開可能な詳細や操作ボタンなどが 自動的に追加されます

Google Chat の設定の外観をカスタマイズして、 通知を受け取れます。また、次のようなさまざまなアクションを提供することもできます。 定型返信文や音声入力による返信を利用できます。詳細については、 ウェアラブル固有の機能を 通知をご覧ください。

図 6. ペア設定した Wear OS で通知が自動的に表示される ダウンロードします

通知の構造

通知のデザインはシステム テンプレートとアプリによって決まります テンプレートの各部分のコンテンツを定義します。イベントの詳細を 通知は展開されたビューにのみ表示されます。

図 7. 基本情報が記載された通知。

通知の最も一般的な部分を図 7 に示します。

  1. 小さいアイコン: 必須。以下を使用して設定します。 setSmallIcon()
  2. アプリ名: システムによって提供されます。
  3. タイムスタンプ: システムによって提供されますが、次のコマンドを使用してオーバーライドできます。 setWhen() または次のコマンドを使用して非表示にします。 setShowWhen(false)
  4. 大きいアイコン: 省略可。通常は連絡先の写真にのみ使用されます。 アプリアイコンには使用しないでください。設定方法 setLargeIcon()
  5. タイトル: 省略可、以下を使用して設定します。 setContentTitle()
  6. テキスト: 省略可。以下を使用して設定します。 setContentText()

Google Cloud 上での設計の互換性を適切に維持するには、システム テンプレートを あります。必要に応じて、カスタム通知を作成 あります

これらの機能を使用して通知を作成する方法と 詳しくは、 通知をご覧ください。

通知の操作

必須ではありませんが、すべての通知を開いておくことをおすすめします。 タップされたときに適切なアプリのアクティビティを表示できます。このデフォルトの設定に加え 通知アクションのほか、アプリ関連の操作を完了するための操作ボタンを追加できます。 通常はアクティビティを開かずに通知からタスクを実行できます。 図 8 に示します。

図 8. 操作ボタン付きの通知

Android 7.0(API レベル 24)以降では、返信するアクションを追加して テキストを入力したり、通知から直接テキストを入力したりできます。

Android 10(API レベル 29)以降では、プラットフォームで、インテント ベースのアクションの候補を使ってアクション ボタンが自動的に生成されます。

アクション ボタンの追加については、 通知をご覧ください。

デバイスのロック解除を必須にする

デバイスのロック画面に通知の操作が表示されることがあります。もし 通知アクションを行うと、アプリがアクティビティを起動したり、ダイレクト リプライを送信したりします。 アプリが通知アクションを呼び出すには、ユーザーがデバイスのロックを解除する必要があります。

Android 12(API レベル 31)以降では、通知アクションを構成できます。 アプリがそのアクションを呼び出すには、デバイスのロックを解除する必要があります。 ワークフローが何であるかに関係なくこのオプションでは、 ロックされたデバイス通知に対するセキュリティも強化されます。

アプリが特定の通知を呼び出す前にデバイスのロック解除を要求する アクションの場合は、truesetAuthenticationRequired() 作成する必要があります。次のコード スニペットをご覧ください。

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 を参照)。

図 9. 大きな通知の展開可能な通知 あります。

展開可能な通知を受信トレイ形式で作成することもできます。 編集したり、メディア再生コントロールで操作したりできます。詳しくは 展開可能な通知を作成するをご覧ください。

通知の更新とグループ

複数の通知や冗長な通知でユーザーを飽和させないように、 追加のアップデートがある場合、既存の 通知機能を使用するよりも 新しい ID を発行したり、受信トレイ形式の 通知を表示します。 会話の更新情報。

ただし、複数の通知を送信する必要がある場合は、グループ化することを検討してください 個別の通知をグループに分割できます。Android 7.0 以降でご利用いただけます。

通知グループを使用すると、複数の通知を 1 つの投稿に 概要が表示されます。ユーザーはコンテナを段階的に その中の各通知の詳細を確認できます。 図 10:

図 10. 通知グループの折りたたみと展開。

通知をグループに追加する方法については、グループ できます

通知チャンネル

Android 8.0(API レベル 26)以降では、すべての通知を 表示されません。これにより、ユーザーは特定の通知を無効にできます。 すべての通知を無効にする代わりに、ユーザーができること 各チャンネルの映像と音声のオプションを Android システムからコントロール 設定を行う必要があります(図 11 を参照)。Google Chat で特定のタスクを 関連付けられたチャンネルの動作を変更する。

Android 7.1(API レベル 25)以下を搭載したデバイスでは、ユーザーは アプリ単位でのみ設定できます。実質的に、各アプリに設定できるチャネルは 1 つのみである Android 7.1 以前のデバイスと同期できます。

図 11. 時計アプリとそのチャンネルの 1 つの通知設定

アプリは、アプリが発行する通知のタイプごとに個別のチャネルを持つことができます。 アプリによる選択に応じて通知チャンネルを作成することもできます。 できます。たとえば、サービス アカウントごとに別々の通知チャンネルを設定し、 メッセージ アプリでユーザーが作成した会話グループです。

チャンネルでは、特定のトピックの重要度を Android 8.0 以降では、すべての通知が同じ宛先に送信されるため、 動作は同じです。これについては、後の 。

詳しくは、通知の作成と管理をご覧ください。 。

通知の重要度

Android では、通知の重要度を使用して、 視覚と聴覚でユーザーの邪魔をします。重要度が高いほど 通知の邪魔になるほど、通知の邪魔になります。

Android の場合 7.1(API レベル 25)以前では、通知の重要度は 通知の priority

Android 8.0(API レベル 26)以降では、通知の重要度は Pod の importance 。ユーザーは通知の重要度を 通知チャンネルを設定します(図 12 を参照)。

図 12. ユーザーは Android で各チャンネルの重要度を変更できる 8.0 以降。

設定可能な重要度レベルとそれに関連する通知の動作は、 次のとおりです。

  • 緊急: 音が鳴り、ヘッドアップ通知として表示されます。

  • 高: 音が鳴ります。

  • 中: 音は鳴りません。

  • 低: 音は鳴らず、ステータスバーにも表示されません。

重要度に関係なく、すべての通知が邪魔にならないシステムに表示される UI の場所(通知ドロワー内、ランチャーのバッジなど) アイコンをクリックします。ただし、通知の外観は変更できます。 バッジです。

詳しくは、 重要度を確認します。

サイレント モード

Android 5.0(API レベル 21)以降では、サイレント モードを有効にできます。 すべての通知の音とバイブレーションをオフにします。通知はまだありません ユーザーが特に指定しない限り、システム UI に通常どおり表示されます。

サイレント モードには次の 3 つのレベルがあります。

  • サイレント: すべての音とバイブレーション(アラーム、音楽、動画、ゲームなど)をブロックします。
  • アラームのみ: アラームを除くすべての音とバイブレーションをブロックします。
  • 優先する通知のみ: ユーザーは、通知を許可するシステム全体のカテゴリを設定できます。 割り込みます。たとえば、アラーム、リマインダー、予定、通話、メッセージのみなどです。 メッセージと通話については、次に示すように送信者または発信者に基づいてフィルタできます 図 13 をご覧ください

図 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 を呼び出すと、古いデバイスでは何も行われません。

以下の主な動作変更の API レベル別の概要は次のとおりです。 Android の通知。

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 Wear(現在の名称は Wear)と同じ API を使用 Android 5.0(API レベル 21)で導入された通知スタックです。

  • ユーザーがインライン返信を使用して通知内で返信できるようにします。入室 その後、通知の親アプリにルーティングされます。

Android 8.0(API レベル 26)

  • 個々の通知が特定のメッセージに チャンネル

  • 通知をすべてオフにする代わりに、チャンネルごとにオフにできる 通知を受け取れます。

  • 有効な通知があるアプリの上部に通知バッジを表示する アプリアイコンをタップまたはクリックします。

  • ユーザーはドロワーから通知をスヌーズできます。自動設定または 指定することもできます。

  • 通知の背景色を設定できます。

  • 通知の動作に関する一部の API を NotificationNotificationChannel。 たとえば、 NotificationChannel.setImportance()NotificationCompat.Builder.setPriority()

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)とサポート パッケージを できます。これは、スマートフォンがロックされている場合や、 [すべてクリア] を選択する。