web-dev-qa-db-ja.com

Androidすべてのモバイルメーカーのランチャーアイコンのバッジ番号

アプリケーションランチャーアイコンにバッジカウンターが必要です。

TextViewを使用して、アプリ内でバッジカウンターを取得するソリューションを知っていますが、ランチャーアイコンでアプリの外部にバッジカウンターを取得するソリューションが必要です。


IOSでは、バッジ番号は次のようにカウントされます。

UIApplication.sharedApplication().applicationIconBadgeNumber

なぜAndroidは、すべての開発者が必要とするSDKにこのようなものを含めていないのか疑問に思っています。


試してみてください1:ソニーのモビイルのみに取り組んでいます:

    Intent badgeIntent = new Intent();
    badgeIntent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", this.getPackageName());
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", this.getClass().getName());
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", ShwMsgBulVar);
    badgeIntent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "10");

     context.sendBroadcast(badgeIntent);

2を試す:ライブラリを試しました: https://github.com/leolin310148/ShortcutBadger

これは少数のメーカーでのみ機能し、すべてのAndroidモバイルで共通というわけではありません。

ShortCutBadgerは、OPPO、VIVO、Xiomi、RelianceLYFのデフォルトランチャーでは機能しません。

いくつかの調査の結果、バッジ番号はランチャーの製造元によって異なり、以下のように記載されていることがわかりました。

ShortCutBadgerサポート:

  • サムスン:「com.sec.Android.app.launcher」
  • ソニー:「com.sonyericsson.home」
  • HTC:「com.htc.launcher」
  • Asus:「com.asus.launcher」

ShortCutBadgerはサポートされていません:

  • Oppo: "com.oppo.launcher"
  • Xiomi:「com.miui.home」
  • Vivo:「com.bbk.launcher2」
  • Lyf: "com.Android.launcher3"
  • Go Launcher: "com.gau.go.launcherex"

それで、すべてのメーカーの携帯電話で機能することができる他の一般的な方法はありますか?

非常に多くの投稿を読み、多くの検索を行いましたが、多くの人が、すべてのランチャーに適用できるそのような一般的なソリューションはないと言っています。
しかし、whatsappとfacebookアプリは、上記のすべてのランチャーにバッジ番号を表示するため、解決策があると思います。

9
Sujay U N

バッジ番号はプラットフォームの一部ではないため、Androidにはそのような機能はありません。 https://github.com/など)これを実現しようとするライブラリがいくつか存在します。 leolin310148/ShortcutBadger ただし、すべてのメーカーのデバイスで機能するとは限らないことを理解しておく必要があります。また、私が理解している限り、バッジはホーム画面にある場合にのみアイコンの上に表示され、アプリのドロワーには表示されません。

8
Ivan Wooll