判断Android应用是否安装、运行
jopen
10年前
本文介绍3个方法,判断手机上是否安装了某应用、该应用是否正在运行、获取手机某个APK文件的安装Intent.启动该Intent就可以直接安装该APK。
/** * 判断应用是否已安装 * * @param context * @param packageName * @return */ private boolean isInstalled(Context context, String packageName) { boolean hasInstalled = false; PackageManager pm = context.getPackageManager(); List<PackageInfo> list = pm .getInstalledPackages(PackageManager.PERMISSION_GRANTED); for (PackageInfo p : list) { if (packageName != null && packageName.equals(p.packageName)) { hasInstalled = true; break; } } return hasInstalled; }
/** * 获取文件安装的Intent * * @param file * @return */ private Intent getFileIntent(File file) { Uri uri = Uri.fromFile(file); String type = "application/vnd.android.package-archive"; Intent intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(uri, type); return intent; }
/** * 判断应用是否正在运行 * * @param context * @param packageName * @return */ private boolean isRunning(Context context, String packageName) { ActivityManager am = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> list = am.getRunningAppProcesses(); for (RunningAppProcessInfo appProcess : list) { String processName = appProcess.processName; if (processName != null && processName.equals(packageName)) { return true; } } return false; }