目前Android有两种主流的判断方式,第一种是根据程序包的名称(packageName)来判断。另外一种就是根据intent来判断,具体代码如下:
根据包名判断,以下为判断代码:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}
2. 根据Intent判断,以下为判断代码:
public boolean checkApkExist(Context context, Intent intent) {
List
if(list.size() > 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
List
.queryIntentActivities(intent, 0);
if (list.size() > 0) {
return true;
}
return false;
}
以上代码只是基于安卓系统来判断,对于ios系统无效。
判断某个APK文件是否已经安装
privateboolean isAppInstalled(String uri) {
PackageManager pm = getPackageManager();
boolean installed =false;
try {
pm.getPackageInfo(uri,PackageManager.GET_ACTIVITIES);
installed =true;
} catch(PackageManager.NameNotFoundException e) {
installed =false;
}
return installed;
}
if(isAppInstalled("com.yourpackage.package")) {
//app installed
} else {
//app not installed
}
PackageManager