note報告とか備忘録とか。2015-12-13約一年ぶりの更新になってしまいました。今回はAndroidでのバッジ表示について触る機会があったので、その時に調査した内容について記述していきます。S2などのGalaxyシリーズではLINEのバッジ表示が有効になっていたことから、今回の調査を始めました。画像のようにアイコンの右上などに未読件数などの通知を行う用途で用いられるバッジですが、iOSではOSの標準機能として実装されているのに対してAndroidではホーム画面プリの実装に依存しているため、Androidにおいてはアプリとホーム画面アプリの組み合わせによっては一部のアプリではバッジが表示される、または一切バッジが表示されないといった状況が起きています。バッジ表示に対応しているホーム画面は、基本的にはブロードキャストインテントを利用してバッジ表示の更新を行っています。LauncherはContentProviderを介した手法となっています。このように、各ホーム画面ごとにバッジ表示の手法や必要な権限が異なっていたり、手法が同じでもインテントのアクション名やエクストラキーが異なっていたりするため、各ホーム画面ごとにバッジ表示部分を実装する必要があるのですが、ShortcutBadgerのようなライブラリを利用することでその手間を省いて統一的に扱うことができます。ShortcutBadgerは海外発のプロジェクトのため、国内端末のホーム画面には対応していません。UXもバッジ表示機能はあるのですが、バッジ表示権限がdocomoによる署名がなされたアプリケーション以外からは利用できないため、そもそもサードパーティーのアプリからはバッジ表示が利用できません。このあたりの制限を緩和してもらえるとありがたいのですが。ここで冒頭の話題に戻りますが、後輩から相談されたので調査した内容をもとにその場でLINEなどのバッジ表示を有効にするアプリを作りました。現状ではXperia限定ですが、このアプリをインストールすることでLINEのバッジ表示要求をXperiaホームが受け取ることのできる形式に変換して再発行するのでバッジ表示が行われるようになります。インテントを再変換して流しなおすだけのアプリのため、設定画面などはありません。そのためホーム画面などからアイコンをタップしても何も起こりませんが仕様です。BadgeRepeater.apkなお、このアプリのインストール、利用については自己責任でお願いします。不正なコードやウイルスの混入が無いようチェックはしていますが、万全を保証するものではないので、必要であれば自身で追加でチェックすることをお勧めします。コメントをキャンセルメールアドレスが公開されることはありません。