package com.example.headpull; import java.util.List; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; //BadgeUtil provides static utility methods to set "badge count" on Launcher (by Samsung, LG). //Currently, it's working from Android 4.0. //But some devices, which are released from the manufacturers, are not working. public class BadgeUtil { public static void setBadge(Context context, int count) { setBadgeSamsung(context, count); setBadgeSony(context, count); } public static void clearBadge(Context context) { setBadgeSamsung(context, 0); clearBadgeSony(context); } public static void setBadgeSamsung(Context context, int count) { String launcherClassName = getLauncherClassName(context); if (launcherClassName == null) { return; } 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", launcherClassName); context.sendBroadcast(intent); } private static void setBadgeSony(Context context, int count) { String launcherClassName = getLauncherClassName(context); if (launcherClassName == null) { return; } Intent intent = new Intent(); intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE"); intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherClassName); 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); } private static void clearBadgeSony(Context context) { String launcherClassName = getLauncherClassName(context); if (launcherClassName == null) { return; } Intent intent = new Intent(); intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE"); intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherClassName); intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", false); intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", String.valueOf(0)); intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName()); context.sendBroadcast(intent); } private static String getLauncherClassName(Context context) { PackageManager pm = context.getPackageManager(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0); for (ResolveInfo resolveInfo : resolveInfos) { String pkgName = resolveInfo.activityInfo.applicationInfo.packageName; if (pkgName.equalsIgnoreCase(context.getPackageName())) { String className = resolveInfo.activityInfo.name; return className; } } return null; } }
相关推荐
要为Android桌面APP图标增加角标功能,我们可以利用Android的启动器快捷方式API(Shortcut API)。从Android Nougat (7.0)开始,Google引入了动态快捷方式,允许开发者创建和更新动态的启动器快捷方式。这为我们提供...
总的来说,为Android桌面图标添加背景框涉及到XML资源文件的编辑,主要是通过`<shape>`和`<layer-list>`元素来实现。如果需要全局生效,可能还需要考虑自定义启动器的实现。对于开发人员来说,理解Android的资源系统...
在Android应用开发中,有时需要在应用程序的图标(icon)上显示未读消息的个数,以提示用户有新的信息待处理。这个功能通常通过在图标右上角添加一个小红圈,里面显示数字来实现。本文将详细讲解如何在Android中实现...
总结来说,实现Android桌面图标右上角显示未读消息数字主要依赖于对系统源码的深度定制和特定设备的API支持。尽管存在兼容性和工作量的问题,但通过合理的代码设计和适配,开发者依然可以为用户提供直观的通知提示,...
"Android Icon PNG图标大全"是一个集合了多种Android系统的PNG图标资源的压缩包,为开发者和设计师提供了一个方便的一站式解决方案,以满足他们在设计或开发过程中对图标的需求。 PNG(Portable Network Graphics)...
产品问了一句:“图标能不能支持服务端动态下发?”,我想了一下回复他:“这是不可能的,设想一下,APP提交审核时候使用的是合规图片,过审之后,动态下发的时候突然下发了一张违规图片(比如:黄赌毒),应用市场...
在9.0和10.0版本中,Launcher3的源代码已经内置了对圆角图标的处理逻辑,但默认情况下可能并未启用。因此,我们需要进行一些定制化设置来改变这一行为。 1. **修改源代码**: 如果你具备编程知识并熟悉Android开发...
这些图标包括桌面的、menu 菜单里的所有图标,每个图标都有其样式和英文名称。下面是这些图标的详细介绍: 1. Alert 图标:alert_dark_frame、alert_light_frame 这两个图标用于表示警告或提醒信息,dark_frame ...
在Android平台上,应用程序图标(App Icon)是用户与应用交互的首要视觉元素,因此它的设计和适配至关重要。为了确保图标在各种不同分辨率和密度的设备上都能清晰、美观地展示,开发者需要按照特定的尺寸标准来创建...
本文将详细解析如何通过源代码实现向Android设备添加桌面图标。 首先,我们需要了解Android的Intent系统,它是Android应用程序间通信的核心机制。在创建桌面快捷方式时,我们会使用到`Intent`的`ACTION_CREATE_...
在Android系统中,一个应用程序通常有一个主入口Activity,它的图标会出现在用户桌面上,供用户点击启动应用。然而,有时开发者可能希望为同一个应用创建多个入口点,以便提供不同的功能或者展示不同的界面,这就...
总的来说,这个压缩包提供了一套多色渐变长投影风格的Android桌面应用图标,包括源文件和预览图像,适用于设计师进行个性化手机主题设计或者应用界面美化。使用时需注意版权信息,并根据Android设计指南进行适配。
在Android应用开发中,有时出于安全或特殊需求,开发者可能希望隐藏APP的桌面图标,使得应用程序在不被用户直观地看到图标的情况下运行。本篇主要介绍如何实现这一功能,以及涉及的相关知识点。 首先,要理解...
在Android应用开发中,图标(Icon)是用户与应用交互的首要视觉元素,它代表了应用的形象和品牌。有时候,开发者可能需要在不发布新版本的情况下更改应用图标,以适应市场变化或者解决紧急设计问题。这通常是通过...
本资源包“Android icon图标素材多色调多尺寸”提供了丰富的图标设计元素,适用于不同场景和需求,旨在帮助开发者或设计师快速创建具有吸引力且符合Android设计规范的应用图标。 一、图标的重要性 1. 用户识别:...
每当双 11、12 来临之际,Android 手机 Launcher 中的淘宝、天猫图标就会变成双 11、12 主题的图标。该 Demo 就实现了动态切换图标、名称
本文将详细讲解如何实现“给Android应用换个图标(桌面快捷图标)sShortcut”的技术过程。 首先,我们需要理解Android系统中快捷方式(Shortcut)的概念。在Android上,快捷方式是一种指向应用程序特定功能的接口,...
通过上述方法,我们可以实现在Android 2.3系统中自定义Launcher,使某些应用的图标不显示在桌面上或主菜单中。虽然Android 4.0版本有细微区别,但核心思路相同。这种方法不仅可以用于个性化桌面布局,还可以帮助...