android 如何从软件包名称中获取应用程序的图标?

sqougxex  于 2023-03-21  发布在  Android
关注(0)|答案(5)|浏览(146)

我已经尝试了各种解决方案,从堆栈溢出没有运气。我想要的。
1.我知道不同应用程序包名称。
1.我想从这些软件包名称应用程序图标。
1.在Image View中显示这些图标。
例如,我有一个包名com.example.testnotification .如何获得这个应用程序图标并在ImageView中显示它?

gk7wooem

gk7wooem1#

试试这个:

try
{
    Drawable icon = getContext().getPackageManager().getApplicationIcon("com.example.testnotification");
    imageView.setImageDrawable(icon);
}
catch (PackageManager.NameNotFoundException e)
{
    e.printStackTrace();
}
nr9pn0ug

nr9pn0ug2#

如果你想从软件包名称中获取任何已安装应用程序的图标(图片),只需复制并粘贴以下代码即可:

try
{
    Drawable d = getPackageManager().getApplicationIcon("com.AdhamiPiranJhandukhel.com");
    my_imageView.setBackgroundDrawable(d);
}
catch (PackageManager.NameNotFoundException e)
{
    return;
}
vuv7lop3

vuv7lop33#

这也适用于:

try
{
    Drawable d = getPackageManager().getApplicationIcon(getApplicationInfo());
    my_imageView.setBackgroundDrawable(d);
}
catch (PackageManager.NameNotFoundException e)
{
    return;
}
webghufk

webghufk4#

try
{
    Drawable drawable = getPackageManager()
            .getApplicationIcon("com.whatsapp");
    imageView.setImageDrawable(drawable);
}
catch (PackageManager.NameNotFoundException e)
{
    e.printStackTrace();
}
vc9ivgsu

vc9ivgsu5#

我尝试了上述所有答案,但只能从系统应用程序中获得图标,Android 11(API级别30)或更高版本中面临的问题,稍微挖掘一下,我找到了this docs page,它说你需要在AndroidManifest文件中添加以下权限:

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
    tools:ignore="QueryAllPackagesPermission" />

现在所有图标都可见。
我使用了下面的代码段来使用DataBinding实现上述功能:

@BindingAdapter("getImageFromPackageName")
fun ImageView.getImageFromPackageName(packageName: String) {
    try {
        val icon = context.packageManager.getApplicationIcon(packageName)
        this.setImageDrawable(icon)
    } catch (e: PackageManager.NameNotFoundException) {
        e.printStackTrace()
    }
}

希望有帮助,谢谢!

相关问题