Android开发中apk安装包常用工具
发布时间:2020-12-14 23:50:24 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 开发项目中用到的有关获取apk信息的工具类,在做版本升级的时候一般都需要用到部分方法,做点笔记: public class AppUtil { /** *根据应用包名(pack
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
开发项目中用到的有关获取apk信息的工具类,在做版本升级的时候一般都需要用到部分方法,做点笔记:
public class AppUtil { /** *根据应用包名(package name)启动应用 *参数分别是上下文context和应用包名:pkgName */ public static boolean startApkByPkgName(Context context,String pkgName) { PackageManager packageManager = context.getPackageManager(); Intent intent = new Intent(); intent = packageManager.getLaunchIntentForPackage(pkgName); if (intent == null) { System.out.println("APP not found!"); return false; } context.startActivity(intent); return true; } /** * 根据apk文件路径得到app信息 */ public static ApplicationInfo getApkInfoByPath(Context context,String absPath) { ApplicationInfo appInfo = null; PackageManager pm = context.getPackageManager(); PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath,PackageManager.GET_ACTIVITIES); if (pkgInfo != null) { appInfo = pkgInfo.applicationInfo; /* 必须加这两句,不然下面icon获取是default icon而不是应用包的icon */ appInfo.sourceDir = absPath; appInfo.publicSourceDir = absPath; } return appInfo; } /** *根据apk应用包名得到应用信息 */ public static PackageInfo getApkInfoByPkgName(Context context,String pkgName) { PackageInfo pkgInfo = null; PackageManager pm = context.getPackageManager(); try { // 0代表是获取版本信息 pkgInfo = pm.getPackageInfo(pkgName,0); } catch (NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return pkgInfo; } /** *根据apk文件路径得到应用信息 */ public static PackageInfo getPkgInfoByPath(Context context,String absPath) { PackageInfo pkgInfo = null; PackageManager pm = context.getPackageManager(); pkgInfo = pm.getPackageArchiveInfo(absPath,PackageManager.GET_ACTIVITIES); return pkgInfo; } /** *根据apk路径直接跳到安装界面 */ public static void installApkByPath(Context context,String absPath) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + absPath),"application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } /** *根据apk包名卸载应用 */ public static void uninstallApk(Context context,String packageName) { String uriString = "package:" + packageName; Uri uninstallUrl = Uri.parse(uriString); Intent intent = new Intent(Intent.ACTION_DELETE,uninstallUrl); context.startActivity(intent); } public static List<ResolveInfo> queryAppInfo(Context context,String packageName) { PackageManager pm = context.getPackageManager(); // 获得PackageManager对象 Intent mainIntent = new Intent(Intent.ACTION_MAIN,null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); mainIntent.setPackage(packageName); // 通过查询,获得所有ResolveInfo对象. List<ResolveInfo> resolveInfos = pm.queryIntentActivities(mainIntent,PackageManager.GET_INTENT_FILTERS); return resolveInfos; } /** *根据名名获取版本信息 */ public static int getInstalledAppVersionCode(Context context,String pkgName) { int versionCode = -1; PackageInfo pkgInfo = AppUtil.getPkgInfoByName(context,pkgName); if (pkgInfo != null) { versionCode = pkgInfo.versionCode; } return versionCode; } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |