Android 是怎么判断某个APK文件是否已经安装

2025-03-07 07:19:15
推荐回答(3个)
回答1:

目前Android有两种主流的判断方式,第一种是根据程序包的名称(packageName)来判断。另外一种就是根据intent来判断,具体代码如下:

  1. 根据包名判断,以下为判断代码:
    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 list = context.getPackageManager().queryIntentActivities(intent, 0);
    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 list = context.getPackageManager()
    .queryIntentActivities(intent, 0);
    if (list.size() > 0) {
    return true;
    }
    return false;
    }

    以上代码只是基于安卓系统来判断,对于ios系统无效。

回答2:

判断某个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
}

回答3:

PackageManager