通知チャンネル
重要度ごとに通知をまとめます
「通知チャンネル」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全4レッスンが含まれています。
通知チャンネル
Android 8.0(API 26)以降では、すべての通知をチャンネルに所属させる必要があります。チャンネルを使うと関連する通知をまとめ、システム設定でユーザーが個別に管理できます。
チャンネルが存在する理由
チャンネルを使うと、ユーザーは通知を細かく管理できます。アプリ全体を一括でオンまたはオフにする代わりに、「Promotions」をミュートしながら「Messages」は音が鳴るようにできます。これにより、通知疲れを軽減できます。
チャンネルは必須
API 26以降では、有効なチャンネルなしで通知を投稿しても何も起こりません。そのチャンネルに最初の通知を投稿する前に、チャンネルを作成する必要があります。
重要度レベル
各チャンネルには、デフォルトの動作を決める重要度があります。
IMPORTANCE_HIGH:音が鳴り、ヘッドアップ通知として表示されるIMPORTANCE_DEFAULT:音が鳴るIMPORTANCE_LOW:音が鳴らないIMPORTANCE_MIN:音が鳴らず、最小化される
チャンネルの作成
id、ユーザーに表示する名前、重要度を指定してNotificationChannelを作成します。
val channel = NotificationChannel(
"messages",
"Messages",
NotificationManager.IMPORTANCE_HIGH
).apply {
description = "Chat messages from your contacts"
}システムへの登録
createNotificationChannelを使い、NotificationManagerにチャンネルを一度登録します。同じidで再度作成しても安全で、問題はありません。
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)早い段階でチャンネルを作成する
チャンネルはApplication.onCreateで作成するのが適しています。そうすれば、どのコードパスから通知を投稿しても、その前にチャンネルが存在します。
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
createNotificationChannels()
}
}チャンネルIDは変更しない
通知を投稿するときに参照するのがチャンネルのidです。idは変更せず、定数として保持してください。そうすれば、ビルダーとチャンネルで常に同じidを使えます。
object Channels {
const val MESSAGES = "messages"
const val PROMOTIONS = "promotions"
}設定を管理するのはユーザー
作成後は、ユーザーがチャンネルを管理します。ユーザーが重要度を下げたりミュートしたりしても、コードで上書きすることはできません。作成時に設定できるのは初期重要度だけです。
チャンネルグループ
チャンネルが多いアプリでは、NotificationChannelGroupを使って設定画面内のセクションに整理できます。たとえば、「Team A」と「Team B」のチャンネルを別々にまとめられます。
API 26未満との互換性
API 26未満のデバイスにはチャンネルがなく、チャンネルIDは単に無視されます。NotificationCompatを使うと、同じコードを各バージョンで安全に動作させられます。
確認テスト
通知チャンネルについて理解度を確認しましょう。
まとめ
通知チャンネルについて学びました。
- API 26以降では、すべての通知にチャンネルが必要
- 重要度レベルで、デフォルトの音やヘッドアップ通知の動作を設定する
NotificationChannelで作成し、createNotificationChannelで登録する- 早い段階でチャンネルを作成し、最終的な設定はユーザーに委ねる
次は、通知の作成です。
よくある質問
「通知チャンネル」レッスンは無料ですか?
はい。「通知チャンネル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全4レッスンが含まれています。
「通知チャンネル」で何を学びますか?
重要度ごとに通知をまとめます ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Android Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「通知チャンネル」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAndroid Academyレッスンでコードを書いて実行できますか?
はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 通知チャンネル
- 通知を作成する
- アクションとディープリンク
- 通知の実行時権限