Android 获取应用的icon、名字、版本号
来源:互联网 发布:微信消息模板php源码 编辑:程序博客网 时间:2024/06/15 05:16
Android 获取应用的icon、名字、版本号
1、获取应用的icon
代码如下:
/** * 根据包名和类名获取App的icon * * @param pkgName 包名 * @param className 类名 */public static Drawable getAppIcon(Context context, String pkgName, String className) { // 查询某个包名下的应用个数 List<AppContent> findList = MainDbHelper.getInstance().getAppContentDao().findAppsFromPackage(pkgName); Drawable drawable; if (findList != null) { if (findList.size() == 1) { drawable = getAppIcon(context, pkgName); return drawable; } else if (findList.size() > 1) { PackageManager pm = context.getPackageManager(); List<ResolveInfo> resolveInfos = GetLaunchAppTool.getInstence(context).getLaunchApp(); if (resolveInfos != null && resolveInfos.size() > 0) { for (ResolveInfo resolveInfo : resolveInfos) { String pkg = resolveInfo.activityInfo.packageName; if (!TextUtils.isEmpty(pkg) && pkg.equals(pkgName)) { String clsName = resolveInfo.activityInfo.name; if (clsName.equals(className)) { drawable = resolveInfo.loadIcon(pm); return drawable; } } } } } } drawable = getAppIcon(context, pkgName); return drawable;}/** * 根据包名获取App的Icon * * @param pkgName 包名 */public static Drawable getAppIcon(Context context, String pkgName) { try { if (null != pkgName) { PackageManager pm = context.getPackageManager(); ApplicationInfo info = pm.getApplicationInfo(pkgName, 0); return info.loadIcon(pm); } } catch (Exception e) { e.printStackTrace(); } return ResourceManager.getDrawable(R.mipmap.ic_default, context.getTheme());}
上面实现了两个获取应用icon的方法,第一个方法多了className这个参数,该方法className参数的作用是当几个应用的包名一样时,我们可以用类名区分不同的应用,从而正确的获取出需要的应用的icon;第二个方法就没有className参数,如果几个应用的包名相同,那么它就只能随机的取出其中一个了,可能造成取出的icon并不是我们需要的,所以推荐使用第一种方法,虽然麻烦一点但是可以更加的准确。
2、获取应用的名字
代码如下:
/** * 根据包名和类名获取App的名字 * * @param pkgName 包名 * @param className 类名 */public static String getAppName(Context context, String pkgName, String className) { // 查询某个包名下的应用个数 List<AppContent> findList = MainDbHelper.getInstance().getAppContentDao().findAppsFromPackage(pkgName); String label; if (findList != null) { if (findList.size() == 1) { return getAppName(context, pkgName); } else if (findList.size() > 1) { PackageManager pm = context.getPackageManager(); List<ResolveInfo> resolveInfos = GetLaunchAppTool.getInstence(context).getLaunchApp(); if (resolveInfos != null && resolveInfos.size() > 0) { for (ResolveInfo resolveInfo : resolveInfos) { String pkg = resolveInfo.activityInfo.packageName; if (!TextUtils.isEmpty(pkg) && pkg.equals(pkgName)) { String clsName = resolveInfo.activityInfo.name; if (clsName.equals(className)) { label = resolveInfo.loadLabel(pm) + ""; return label; } } } } } } label = getAppName(context, pkgName); return label;}/** * 根据包名获取App的名字 * * @param pkgName 包名 */public static String getAppName(Context context, String pkgName) { PackageManager pm = context.getPackageManager(); try { ApplicationInfo info = pm.getApplicationInfo(pkgName, 0); return info.loadLabel(pm).toString(); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return "";}
获取应用名字的方法和获取icon一样实现了两个方法,它们的区别也是和获取icon的一样,为了获取的名字更准确,推荐使用方法一。
3、获取应用的版本号
代码如下:
/** * 获取版本号 * * @param context Context * @return 版本号 */public static int getVersionCode(Context context) { PackageInfo pi; int code = -1; PackageManager pm = context.getPackageManager(); try { pi = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_CONFIGURATIONS); code = pi.versionCode; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return code;}
阅读全文
1 0
- Android 获取应用的icon、名字、版本号
- 获取应用的名字及版本号;
- android获取应用的版本号
- 获取android应用的版本号
- Android 获取应用版本号
- 获取Android应用版本号
- Android获取当前应用的版本号
- Android 获取手机应用的版本号
- Android 获取当前应用的版本号
- Android获取本应用的版本号
- 获取应用的版本号
- Android应用如何获取版本号
- android 获取已安装apk的icon和名字以及size
- android 获取已安装apk的icon和名字以及size
- android获取应用的当前版本号及获取当前android系统的版本号
- Cocos2d-x Android修改ICON名字、更改图标、修改屏幕方向、修改版本号
- 获取应用的当前版本号&获取当前android系统的版本号
- 获取应用的当前版本号&获取当前android系统的版本号
- vue之API—目录提示
- JPA错误搜集之Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: cn.it
- 数字签名是什么?
- shell学习
- Android NDK-Application.mk详解
- Android 获取应用的icon、名字、版本号
- RedisTemplate访问Redis数据结构(四)——Set
- Google Map Api v3 自定义标记插件RichMarker
- Java动态拼接SQL--01
- IT高管和易筋经的故事
- 安卓场景动画
- 移动前端头部标签(HTML5 head meta)
- Linux上安装ArcGIS Engine 10.4详解
- ffmpeg实现YUV420缩放