获取未安装apk的信息
来源:互联网 发布:怎样开淘宝店卖视频 编辑:程序博客网 时间:2024/06/10 00:00
从网上看到的方法,后来偶得灵感,精简了一下,不敢独享,与大家分享下!
/** * Get Apk File Information * @param context * @param apkPath : apk file path * @return : such as icon, name */public static ApkInfo getApkInfo(Context context, String apkPath){ApkInfo apkInfo = null;String PATH_AssetManager = "android.content.res.AssetManager";try{PackageManager pm = context.getPackageManager();PackageInfo info = pm.getPackageArchiveInfo(apkPath,PackageManager.GET_ACTIVITIES);if(null == info){return null;}Class<?> assetMagCls = Class.forName(PATH_AssetManager);Constructor<?> assetMagCt = assetMagCls.getConstructor((Class[]) null);Object assetMag = assetMagCt.newInstance((Object[]) null);Class<?>[] typeArgs = new Class[1];typeArgs[0] = String.class;Method assetMag_addAssetPathMtd = assetMagCls.getDeclaredMethod("addAssetPath", typeArgs);Object[] valueArgs = new Object[1];valueArgs[0] = apkPath;assetMag_addAssetPathMtd.invoke(assetMag, valueArgs);Resources res = context.getResources();typeArgs = new Class[3];typeArgs[0] = assetMag.getClass();typeArgs[1] = res.getDisplayMetrics().getClass();typeArgs[2] = res.getConfiguration().getClass();Constructor<Resources> resCt = Resources.class.getConstructor(typeArgs);valueArgs = new Object[3];valueArgs[0] = assetMag;valueArgs[1] = res.getDisplayMetrics();valueArgs[2] = res.getConfiguration();// XXX What we really need it is the Resourcesres = (Resources) resCt.newInstance(valueArgs);apkInfo = new ApkInfo();// Get apk nameString name = null;if (info.applicationInfo.labelRes != 0){name = res.getText(info.applicationInfo.labelRes).toString();}else{// if set name in label directlyname = pm.getApplicationLabel(info.applicationInfo).toString();}apkInfo.setName(name);// Get apk iconif (info.applicationInfo.icon != 0){apkInfo.setIcon(res.getDrawable(info.applicationInfo.icon));}apkInfo.setPackageName(info.packageName);apkInfo.setPath(apkPath);apkInfo.setSize(new File(apkPath).length());apkInfo.setVersionCode(info.versionCode);apkInfo.setVersionName(info.versionName);}catch (Exception e){e.printStackTrace();}return apkInfo;}
public class ApkInfo{private Drawable icon;private String name;private String packageName;private String versionName;private int versionCode;private String path;private String size;.........}
- 获取未安装的APK信息
- 获取未安装apk的软件包信息
- 获取未安装的APK信息
- 获取未安装apk的信息
- 获取SDCard上未安装的apk文件的信息
- android获取未安装的APK文件的信息
- android 获取未安装apk的icon、name等信息
- Android 获取未安装apk的name、icon等信息
- 获取指定路径下未安装的apk包信息
- 获取未安装apk文件信息
- 获取未安装apk文件信息
- 获取已安装的应用/目标路径下未安装的apk信息
- [Android]获取未安装的APK图标
- [Android]获取未安装的APK图标
- 获取未安装的APK图标
- [Android]获取未安装的APK图标
- [Android]获取未安装的APK图标
- 获取未安装APK文件的图标
- sqlserver 取取月初月末和月份间隔
- java中数据结构之间的区别
- 夏日常见水果营养分析
- Color by Name
- 342
- 获取未安装apk的信息
- 餐前餐后吃水果的四点注意
- 什么是BSP
- 10只老鼠10只杯检测1000瓶酒中的毒酒
- 黑色的水果越吃越年轻
- 简单工厂模式
- ArcGIS地理数据库建模设计及实现
- 饭后一个梨,健康永不离
- extjs的ajax请求json解析时引号问题