如何获取不到应用的图标
怎么获取不到应用的图标
用Drawable appIcon =(Drawable)packageInfo.applicationInfo.loadIcon( getPackageManager());获取到的icon,然后在getview函数里面重写了以下过程
ImageView imageViewIcon = (ImageView)convertView.findViewById(R.id.imageView1);
imageViewIcon.setImageDrawable(appUnit.appIcon);
但是一直获取不到icon,应用的版本和程序名都能正常获取,是不是没有添加什么权限,或者哪里写错了
------解决方案--------------------
你的packageInfo确定正确吗
------解决方案--------------------
PackageInfo info = getPackageManager().getPackageArchiveInfo(fullPath, 0);
ApplicationInfo appinfo = info.applicationInfo;
label = getPackageManager().getApplicationLabel(appinfo).toString();
img = getPackageManager().getApplicationIcon(info.packageName);
------解决方案--------------------
这句话Drawable appIcon =(Drawable)packageInfo.applicationInfo.loadIcon( getPackageManager());的getPackageManager()方法是本地方法吗?注意指针问题。
------解决方案--------------------
亲测这种方法可以获取到icon,楼主检查一下appUnit.appIcon的值。
楼主用的这种方法可以获取到系统中所有apk的信息,包括没在launcher显示的。有个方法可以只获取到launcher里的那些apk的信息:
用Drawable appIcon =(Drawable)packageInfo.applicationInfo.loadIcon( getPackageManager());获取到的icon,然后在getview函数里面重写了以下过程
ImageView imageViewIcon = (ImageView)convertView.findViewById(R.id.imageView1);
imageViewIcon.setImageDrawable(appUnit.appIcon);
但是一直获取不到icon,应用的版本和程序名都能正常获取,是不是没有添加什么权限,或者哪里写错了
------解决方案--------------------
你的packageInfo确定正确吗
------解决方案--------------------
PackageInfo info = getPackageManager().getPackageArchiveInfo(fullPath, 0);
ApplicationInfo appinfo = info.applicationInfo;
label = getPackageManager().getApplicationLabel(appinfo).toString();
img = getPackageManager().getApplicationIcon(info.packageName);
------解决方案--------------------
这句话Drawable appIcon =(Drawable)packageInfo.applicationInfo.loadIcon( getPackageManager());的getPackageManager()方法是本地方法吗?注意指针问题。
------解决方案--------------------
亲测这种方法可以获取到icon,楼主检查一下appUnit.appIcon的值。
楼主用的这种方法可以获取到系统中所有apk的信息,包括没在launcher显示的。有个方法可以只获取到launcher里的那些apk的信息:
private List<ResolveInfo> mApps;
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mApps = getPackageManager().queryIntentActivities(mainIntent, 0);
ResolveInfo info = mApps.get(position);
imageViewIcon.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));