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" />