【Android】ローカルプッシュ通知についてまとめた

プログラムの画面 Android開発

とある業務で、ローカルプッシュ通知を実装しました。

個人的に初めてのことで、若干時間がかかった部分でしたので備忘録としてまとめます。

ローカルプッシュ通知とは?

一般的なプッシュ通知は、「今日のおすすめ動画はこちら!」とか見慣れたアレのことです。

もうちょっと詳しく
プッシュ通知を受け取るスマホの「デバイス識別番号」をサーバ側に登録します。
そして、その識別番号を使って、端末を特定し、条件にあったユーザにプッシュ通知を送ることが可能です。
例えば、「●●さんからメッセージが来ています!」とかですね。

それらは、サーバが動作して、各スマホに送信しています。

しかし、ローカルプッシュ通知はスマホ内で、好きなタイミングでプッシュ通知を送ることが出来ます。

Androidでの、ローカルプッシュ通知実装

もう、そのまんま載っけます。

必要最低限の実装は下記の通りです。

コードの内容を解説

①インテントの作成

ローカルプッシュ通知をタップした時に遷移するための準備をします。

通常のIntentではなく、PendingIntentというものを使用します。

PendingIntentは、外部アプリ(実装したアプリ以外のもの)に与えることで、他のアプリも自分自身のアプリのように動作させることができます。

今回で言えば、ローカルプッシュ通知なので、Androidのホームアプリとの連携になります。

②通知の準備

NotificationCompatのビルダーを使って、文言やアイコンなどを設定します。
priority は、通知の優先度を設定するものです。

こちらを参照ください。

通知を作成する  |  Android デベロッパー  |  Android Developers

③チャネルの設定

Android8以上では、「アプリの通知チャネル」という機能が搭載されています。

そのシステム側への登録が必要になります。

アプリの通知チャネルとは?
ユーザが細かい通知の設定をできる機能です。
メッセージの通知はOFFにして、通話の通知はONにしよう…のように各通知を切り替えることできます。

④ローカルプッシュ通知を送信する

あとはビルダーを使ってプッシュ通知を送信します。

書いてある通りですね!

Kotlinの書き方について補足

applyを使うと便利です!

一時変数の記載が不要になるので、コードがとても簡略化できます。

Kotlinでスコープ関数「apply」を使えば、一時変数を書かなくてすむの巻 - Qiita
こんにちは。 Kotlinを学びだすと、「なんだコレは?コレを使って何がオイシいのか?」と、その存在意義を疑いたくなるような感覚に陥っている最中の私です。 特に、スコープ関数の「apply」がよく分からなくて腹が立ち減ります。 あ...

【補足】長文の通知をスライドして表示させる

ジョージ・眉間シワ男
ジョージ・眉間シワ男

あれ?
さっきのコードだけだと、通知が全文表示されないんだけど……。

これは、以下の処理を加えると対応可能です!

参考記事

通知を作成する  |  Android デベロッパー  |  Android Developers
PendingIntent  |  Android デベロッパー  |  Android Developers

Androidで表示できる通知まとめ | Developers.IO
Android Notification Androidの通知には様々なスタイルがあります。 今回は通知のスタイルに焦点を絞って解説いたします。 一般的なもの 何も指定しない場合、こちらの通知が表示されます。 内容が長い …
Notificationを勉強し直す
OJI のメモ帳

さいごに

確認してますが、ソースコードに誤字などがありましたら、ご連絡いただけると幸いです🙇‍♂️

タイトルとURLをコピーしました