アプリの動作検証担当になってここ数ヶ月、個人的には信じられない(単に直感的でない)ことにはまって数時間困った件を残します。
同じことで悩んでいる人の助けになれば幸いです。
事象
Android 9端末(Galaxy A20 SCV46とALLDOCUBE iPlay10 Pro U1006H)にて、
Javaで開発されたアプリの通知機能を検証するために、
インストール直後、通知は受け取れる(ステータスバーにはアイコンは出ている)が、場合によってポップアップされたりされなかったりする???
という悩ましい現象が発生。
原因
Androidのアプリ設定にて、検証中のアプリの設定画面を開いていた。
という至極シンプルなことだった。
対処方法
通知動作を確認するときは、アプリの設定画面を開いているプロセスを立ち上げっぱなしになっていないことを確認すること。
立ち上げているなら、落とすこと。
最後に
Androidのアプリ設定周りの内部仕様をわかっていないので、挙動だけで判断するに、
本来なら初回通知受診時に送信元が設定したパラメータを元に通知設定が作成されるはずが、
アプリの設定画面を開いた状態で通知を受け取ってしまうと、パラメータ値を無視してOS側のデフォルト値を使ってアプリ通知設定が出来上がってしまう。
すなわち、「音声のみ」の通知になるため、ポップアップされなかった。
動作検証で通知機能をちゃんと確認しようとした場合、確実にOSのアプリ設定画面は開くことになるはずなので、
悩まないで済むように、もしくは、その現象に気付けるようにこの記事を残す。
追伸
こういう大事なことは、Androidの開発者向けの説明資料には掲載されているのかもしれないが、今の所見つけられていない。。。