如何显示在我的文件管理器的apk图标我的、管理器、图标、文件

2023-09-05 06:35:16 作者:彡公牛,⌒、上高速

我想告诉我的列表视图apk文件的图标。

我怎样才能获得的apk图标?

解决方案

 如果(file.getPath()的endsWith(APK)){
        串文件路径= file.getPath();
        PackageInfo packageInfo = context.getPackageManager()getPackageArchiveInfo(文件路径,PackageManager.GET_ACTIVITIES)。
        如果(packageInfo!= NULL){
            ApplicationInfo APPINFO = packageInfo.applicationInfo;
            如果(Build.VERSION.SDK_INT> = 8){
                appInfo.sourceDir =文件路径;
                appInfo.publicSourceDir =文件路径;
            }
            可绘制图标= appInfo.loadIcon(context.getPackageManager());
            bmpIcon =((BitmapDrawable)图标).getBitmap();
        }
    }
 

最重要的线是 appInfo.publicSourceDir =文件路径;

这是一个错误。请参阅http://$c$c.google.com/p/android/issues/detail?id=9151

空检查 packageInfo!= NULL 是存在的,以防apk文件没有被正确解析。

sd卡分区工具apk汉化版2021下载 AParted 手机sd卡分区工具apk汉化中文版 v1.51免root版 新绿资源网

I want to show icon of apk file in my listview.

How can i get icon of apk?

解决方案

    if (file.getPath().endsWith(".apk")) {
        String filePath = file.getPath();
        PackageInfo packageInfo = context.getPackageManager().getPackageArchiveInfo(filePath, PackageManager.GET_ACTIVITIES);
        if(packageInfo != null) {
            ApplicationInfo appInfo = packageInfo.applicationInfo;
            if (Build.VERSION.SDK_INT >= 8) {
                appInfo.sourceDir = filePath;
                appInfo.publicSourceDir = filePath;
            }
            Drawable icon = appInfo.loadIcon(context.getPackageManager());
            bmpIcon = ((BitmapDrawable) icon).getBitmap();
        }
    }

The most important line is appInfo.publicSourceDir = filePath;

This is a bug. See http://code.google.com/p/android/issues/detail?id=9151

The null check packageInfo != null is there in case the .apk is not parsed correctly.