epe*_*leg 52 java android facebook badge android-launcher
我知道这里有几个Q,询问是否有可能在Android应用程序中添加徽章,并且他们最终都没有答案......
但不知何故,Android的最新Facebook测试版似乎做了一些至少看起来像徽章的东西,即使它在技术上并非如此.
在该帖子中,其中一位评论者表示,它与TouchWiz有某种关联.而且他们在这里也提到它是"S3 TouchWiz Jelly Bean Addon"的一个特色.
我仍然希望了解如何做到这一点,以及是否有一些我可以在我自己的应用程序中使用的API(当在适当的环境中运行时 - 即FB演示此行为的同一设备)?
Ahm*_*deh 30
嗨,你可以简单地使用这个库.
支持:索尼,三星,LG,HTC,小米,华硕,ADW,APEX,NOVA,华为,ZUK,OPPO
添加:
int badgeCount = 1;
ShortcutBadger.applyCount(context, badgeCount);
Run Code Online (Sandbox Code Playgroud)
去掉 :
ShortcutBadger.applyCount(context, 0);
Run Code Online (Sandbox Code Playgroud)
Mar*_*cus 23
我已经弄清楚如何为索尼设备做到这一点.
我在这里写了博客.我也张贴了关于这一个单独的SO问题在这里.
索尼设备使用一个名为的类BadgeReciever.
com.sonyericsson.home.permission.BROADCAST_BADGE在清单文件中声明权限:
广播Intent到BadgeReceiver:
Intent intent = new Intent();
intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", "com.yourdomain.yourapp.MainActivity");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", "99");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", "com.yourdomain.yourapp");
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)完成.一旦Intent在广播发射器应显示在您的应用程序图标徽章.
要再次删除徽章,只需发送一个新广播,这次SHOW_MESSAGE设置为false:
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false);
Run Code Online (Sandbox Code Playgroud)我已经排除了有关我如何找到这个以保持答案简短的细节,但这些都在博客中提供.对某人来说,这可能是一个有趣的读物.
Jor*_*any 12
没有标准的方法来实现这一目标; 索尼或三星等许多制造商已经在他们自己的Android定制中实现了它.
例如在三星中,您必须使用BADGE_COUNT_UPDATE操作广播一个意图,让它MainActivity成为您的主要活动类,并且count是您要在应用图标中显示的数字,请注意0将隐藏徽章:
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
intent.putExtra("badge_count", count);
intent.putExtra("badge_count_package_name", context.getPackageName());
intent.putExtra("badge_count_class_name", MainActivity.class.getName());
context.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
索尼设备将"com.sonyericsson.home.action.UPDATE_BADGE"自定义附加功能与@Marcus Answered一起使用,因此您必须为"com.sonyericsson.home.permission.BROADCAST_BADGE"应用清单添加权限,并且:
Intent intent = new Intent("com.sonyericsson.home.action.UPDATE_BADGE");
intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", MainActivity.class.getName());
intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", true);
intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(count));
intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());
context.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
注意:最好查询应用程序的数据(context.getPackageName(),MainActivity.class.getName()),而不是硬编码以防万一您将来进行重构.
Com*_*are 10
但不知何故,Android的最新Facebook测试版就是这样......
不是根据包含您链接到的屏幕截图的论坛帖子.引用vakama94:
嗯,这实际上是TouchWiz,而不仅仅是应用程序.我有一个运行JellyBean 4.1.2的Galaxy S II,它与其他一些应用程序相同
三星是否有一个公共API允许应用程序发布数字用作徽章,我不能说.这可能是他们与少数公司私下做的事情.
欢迎您提供在Android主屏幕上查看这些徽章的证据,例如Nexus系列设备之一.
| 归档时间: |
|
| 查看次数: |
48791 次 |
| 最近记录: |