最近、Unityで作ったゲームアプリ「ネコベンチャー」にFirebaseのプッシュ通知(FCM)を導入しました。
実装自体は特に問題なかったのですが、Android端末にFirebaseコンソールから通知した際、アイコンが白くなる問題が発生しました。
Androidアプリを開発した時にも同じ現象が発生したことがあるんですが、ど忘れしているっていうことと、今回はUnityで実装しているので、改めて調べることにしました。
今回はこの対処法について。
Androidで通知アイコンが白くなる原因
まず、Androidで通知アイコンが白くなる原因ですが、調べた限りだと、Android OSバージョン 5以上から通知の表現方法が変更になり、アイコンの背景が不透明な四角い画像だと白くなってしまうようです。(ちなみにAndroid OSバージョン 4以下では今まで通りアプリアイコンが表示されます。)
なので、対処法としてはAndroid OSバージョン 5以上用に、背景透過の通知アイコンを用意してあげる必要があるようです。
(上の画像のドロイド君の顔のような画像が必要)
参考:
Android 5.0 Lolipop以上で通知アイコンが白くなってしまう問題を解決する
Set Up a Firebase Cloud Messaging Client App on Android | Firebase
Unity (Android/iOS) + Firebaseでお手軽にPush Notificationを送信する
Androidで通知アイコンが白くなる件の対処法(Unity)
1. Assets>Plugins>Android>res>drawableに通知用アイコンを配置する
まず、Unityプロジェクトの「Assets>Plugins>Android>res>drawable」に通知用アイコンを設置します。もしdrawableフォルダがない場合は作成します。
もしアイコンのカラーも変更したい場合は、「Assets>Plugins>Android>res>values」にcolor.xmlを配置します。
xmlの中身はこんな感じ↓
2. Assets>Plugins>AndroidのAndroidManifestを編集する
次にAndroidManifestをこんな感じに編集します。
「com.google.firebase.messaging.default_notification_icon」に通知アイコン画像、
「com.google.firebase.messaging.default_notification_color」に通知アイコンのカラーを指定すればOKです。
最後にビルドしてアプリ起動・終了して、Firebaseからプッシュ通知を送って確認します。
うまくうけば通知用に設置したアイコンが表示されるようになるはずです。
関連:
【iOS】プッシュ通知(Firebase Cloud Messaging)で「エンタイトルメント文字列が見つかりません」のエラーの対処法 - テクノモンキーのアプリ開発日記