获取启动器的图标资源标识符

Get launcher's icon resource identifier

这是我获取应用程序启动器图标的方法(Koltin 代码,但这个问题与 Kotlin 无关):

val packageManager = packageManager()
val applicationInfo = packageManager.getApplicationInfo(packageName, 0)
val drawable = applicationInfo.loadIcon(packageManager)

现在 TaskManager 不赞成使用非分辨率图标,我的观点是获取该启动器图标的值或 DrawableRes(等于 R.drawable.ic_launcher 的标识符)例如)。

我找不到方法。这是否可以动态地实现(或者由于 R.java 代而不可能?),而无需明确键入它?

如果想获取图标对应的resource id,并且知道包名和item名,可以这样:

int resourceId = this.getResources().getIdentifier("nameOfResource", "drawable", this.getPackageName());

"this" 是运行代码的 activity。
"nameOfResource" 是图标本身的名称(没有文件扩展名)
"drawable" 是图标所在的 res 子文件夹的名称。

您可以找到函数文档here

或者您可以接收应用程序的资源 ID 是这个:

final PackageManager packageManager = getPackageManager();
final ApplicationInfo applicationInfo=packageManager.getApplicationInfo(packageName,PackageManager.GET_META_DATA);
final int appIconResId=applicationInfo.icon;

这和你的方法很相似。 您搜索应用程序的所有 资源 并获取访问图标 ID 作为返回信息的成员。