我想告诉我的列表视图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文件没有被正确解析。
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.