どちらかというとiOSのイメージが強いアイコンの上の赤い丸いあれ。
公式じゃないけど、最近は対応している端末も徐々に増えている模様なので、Notificationと共に、ユーザーのアプリ起動のきっかけに。
実装はすごく簡単で、Read meに対応端末含め、全部載ってます。
https://github.com/leolin310148/ShortcutBadger
build.gradle
android { (略) repositories { mavenCentral() } } dependencies { compile 'me.leolin:ShortcutBadger:1.1.10@aar' }
ちょいちょいバージョンアップされていますが、処理を変える必要は滅多になく、最近はひたすら対応端末が増えている状況のようなので、適宜バージョンアップしていくのが良さそう。
バッジの表示
int badgeCount = 1; // 表示する数値 ShortcutBadger.applyCount(this, badgeCount);
ShortcutBadgeExceptionをcatch
int badgeCount = 1; // 表示する数値 try { ShortcutBadger.applyCountOrThrow(this, badgeCount); } catch (ShortcutBadgeException e) { // おそらくNexusとか非対応の端末 }
try〜catchしなくても、特に落ちることはないですが、Nexusとか、未対応端末の場合に何か処理をしたいのであれば、try〜catchを入れて、必要な処理を追加したらいいと思います。
バッジを消す
ShortcutBadger.removeCount(this);
こっちもtry〜catch
try { ShortcutBadger.removeCountOrThrow(this); } catch (ShortcutBadgeException e) { // おそらくNexusとか非対応の端末 }
バッジの表示の処理で0を入れてもバッジは消えてくれるので、removeは別に必要ないかも。
補足
自分が試した端末では「99」まで表示が最大で、それ以上は一律で「+99」表示でした。
他に情報を色々探しているとXperiaは別の手法でやってるとかあるけど、1.1.6で「add support for new Sony Launchers.」って書いてあるので、最近の端末であれば、ShortcutBadgerでも普通にいけるのかな?
ここでも最近のホームで使えるようになったとかどうとか。
http://did2memo.net/2016/08/27/naver-line-notification-badge-android/
最近のXperia端末が手元にないので把握できてないですが、また分かったら追記します。