获取未安装apk文件的图标

如题,一开始也不知到如何获取apk图标,后来在百度上找,多TMD的同一个内容(天下文章一大抄),而且还要通过反射机制,这太复杂。

我再用google去搜索,发现这么一段关键点:

// the secret are these two lines....
 pi.applicationInfo.sourceDir       =APKFilePath;
 pi.applicationInfo.publicSourceDir =APKFilePath;//

所以仿造去写自己的代码:

int colnumData = mCursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI);
            Uri uri = Uri.parse(mCursor.getString(colnumData)+"");
            String path = uri.getPath();
            PackageInfo pi = pm.getPackageArchiveInfo(path, 0);
            if(pi != null){
                ApplicationInfo appInfo = pi.applicationInfo;
                pi.applicationInfo.sourceDir       = path;
                pi.applicationInfo.publicSourceDir = path;
                Drawable icon = pm.getApplicationIcon(appInfo);
                iconView.setImageDrawable(icon);
            }

万事ok,可以获取apk图标。

有一个网站比较好:http://stackoverflow.com/,此次的问题解决,灵感来源于此。大笑

猜你喜欢

转载自lingbjxm.iteye.com/blog/1880236