判断Android应用是否安装、运行

本文介绍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;
}

时间: 2024-11-20 05:22:05

判断Android应用是否安装、运行的相关文章

判断android应用是否在运行等方式

/*** * 判断应用当前是否前台运行 * * @return */ public static boolean isTopRun(Context context) { Boolean isTopRun = false; try { /* 判断当前程序是不在前台显示 */ ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<Run

Android中插件开发篇之----动态加载Activity(免安装运行程序)

一.前言 又到周末了,时间过的很快,今天我们来看一下Android中插件开发篇的最后一篇文章的内容:动态加载Activity(免安装运行程序),在上一篇文章中说道了,如何动态加载资源(应用换肤原理解析),没看过的同学,可以转战: http://blog.csdn.NET/jiangwei0910410003/article/details/47679843 当然,今天说道的内容还这这篇文章有关系.关于动态加载Activity的内容,网上也是有很多文章介绍了.但是他们可能大部分都是介绍通过代理的方

Android插件化探索(三)免安装运行Activity(上)

[Android插件化探索(一)类加载器DexClassLoader] [Android插件化探索(二)资源加载] 前情提要 在上一篇中有一个细节没有提到,那就是getResourcesForApplication和AssetManager的区别. getResourcesForApplication getResourcesForApplication(String packageName),很显然需要传入一个包名,换言之,这个插件必须已经被安装在系统内,然后才能通过包名来获取资源.你可能会想

Android判断App是否在前台运行(转)

原文地址: http://blog.csdn.net/zuolongsnail/article/details/8168689 Android开发中,有时候需要判断App是否在前台运行. 代码实现如下: [java] view plaincopy private boolean isRunningForeground (Context context) { ActivityManager am = (ActivityManager)context.getSystemService(Context

Android 如何判断指定服务是否在运行中 &ldquo;Service&rdquo;

如何判断一个服务是否正在运行中: /** * 判断某个服务是否正在运行的方法 * * @param mContext * @param serviceName 是包名+服务的类名 * @return true代表正在运行,false代表服务没有正在运行 */ public static boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false; ActivityManager myAM

Android之判断某个服务是否正在运行的方法

/** * 判断某个服务是否正在运行的方法 * * @param mContext * @param serviceName * 是包名+服务的类名(例如:net.loonggg.testbackstage.TestService) * @return true代表正在运行,false代表服务没有正在运行 */ public boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false;

Android应用程序安装过程浅析

我们知道在android中,安装应用是由PackageManager来管理的,但是我们发现PackageManager是一个抽象类,他的installPackage方法也没有具体的实现.那在安装过程中是怎么执行的呐? 调用方 查看代码可以知道ApplicationPackageManager是直接继承自PackageManager的,所以最终代码会调用ApplicationPackageManager下的installPackage(Uri packageURI, IPackageInstall

js判断移动端是否安装某款app的多种方法

第一种方法: 一:判断是那种设备 var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 二:安卓设备:原理:判断是否认识这个协议,认识则直接跳转,不认识就在这里下载app android(); if(isAndroid){ function an

Android M 新的运行时权限开发者需要知道的一切

本文来自微凉一季的博客http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ 更多文章点击跳转微凉一季 tags: 翻译,这是一篇译文. android M 的名字官方刚发布不久,最终正式版即将来临! android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响.惊讶的是android社区鲜有谈论这事儿,尽管这事很重要或许在不远的将来会引发很严重的问题. 这是今天我写这篇博客的原因.这里有一切