Android 获取已安装应用、包名、应用名、版本号、版本名

server/2024/11/14 13:02:22/

1、相关代码

 List<ApplicationInfo> installedApps = getPackageManager().getInstalledApplications(0);for (ApplicationInfo appInfo : installedApps) {CharSequence getAppName = getPackageManager().getApplicationLabel(appInfo);String appName=getAppName.toString();//获取到app名String packageName=appInfo.packageName;String versionName=getVersionName(this,packageName);//一般这个就是版本号--1.2.11Log.d(">>>appInfo ","appName="+appName+",,,,,,,packageName="+packageName+",,,,,,,,,versionCode="+versionCode+",,,,,,,,,,versionName="+versionName);if (packageName.equals("com.mywl.heiangnscxb")){// 应用程序已安装break;}}public  int getVersionCode(Context context,String packageName) {PackageManager manager = context.getPackageManager();int code = 0;try {PackageInfo info = manager.getPackageInfo(packageName, 0);code = info.versionCode;} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return code;}public  String getVersionName(Context context,String packageName) {PackageManager manager = context.getPackageManager();String name = null;try {PackageInfo info = manager.getPackageInfo(packageName, 0);name = info.versionName;} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return name;}

2、相关权限

加上权限才能获取到所有的应用

<uses-permissionandroid:name="android.permission.QUERY_ALL_PACKAGES"tools:ignore="QueryAllPackagesPermission" />

http://www.ppmy.cn/server/41818.html

相关文章

java(实验拓展)工厂模式和原型模式

工厂模式 简单来说是一种创建型设计模式&#xff0c;它提供了一种创建对象的最佳实践&#xff0c;这种模式提供了一种抽象工厂&#xff0c;通过使用工厂方法来创建对象。工厂方法将对象的创建推迟到子类中&#xff0c;这样就可以实现对象的创建和使用解耦。 一、概念 工厂模…

练习题(2024/5/14)

1四数相加 II 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;n…

Vue 常见通信

Vue 常见通信 1、父子通信 父传子 props&#xff0c;子传父 events&#xff08;$emit&#xff09;&#xff1b; 通过父链 / 子链 通信$parent / $children&#xff1b; $refs获取ref 可以访问组件实例方法&#xff0c;&#xff1b; 提供与注射provide / inject a t t r s …

vscode切换分支及合并分支操作教程

工具&#xff1a;gitee、git 、vscode、Git Graph 点击可以看到分支管理明细。 一、前提 1、首先要有两个分支 &#xff08;1&#xff09;分支说明&#xff1a; test&#xff1a; 测试分支 feature/luo-20240508&#xff1a;自己的开发分支 &#xff08;2&#xff09;分支说…

npm无法安装node-sass 的问题

安装 node-sass 的问题呈现&#xff1a;4.9.0版本无法下载 Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-…

【Git教程】(十八)拆分大项目 — 概述及使用要求,执行过程及其实现,替代解决方案 ~

Git教程 拆分大项目 1️⃣ 概述2️⃣ 使用要求3️⃣ 执行过程及其实现3.1 拆分模块版本库3.2 将拆分出的模块作为外部版本库集成 4️⃣ 替代解决方案 通常软件项目都是由单体小型系统开始的&#xff0c;在开发过程中项目规模和团队人员不断扩大&#xff0c; 将项目模块化会显得…

idea使用gitee基本操作流程

1.首先&#xff0c;每次要写代码前&#xff0c;先切换到自己负责的分支 点击签出。 然后拉取一次远程master分支&#xff0c;保证得到的是最新的代码。 写完代码后&#xff0c;在左侧栏有提交按钮。 点击后&#xff0c;选择更新的文件&#xff0c;输入描述内容&#xff08;必填…

正则表达式和lambda表达式

正则表达式&#xff08;Regular Expressions&#xff09;和Lambda表达式虽然都包含“表达式”一词&#xff0c;但它们在编程中的作用和用法是完全不同的。让我们详细比较一下它们的定义、用途和应用场景&#xff1a; 正则表达式 定义&#xff1a;正则表达式是一种用于匹配文本…