アンインストールされたAPKアプリケーションのパッケージ名、アプリケーション名、バージョン情報を取得する方法

       Android の開発プロセスでは、サードパーティ製アプリをインストールできるかどうかを判断する際に、パッケージ名などのアプリの情報を判断する必要がある場合があります。 、インストールを許可しません。

        では、アンインストールされたアプリケーションについて、アプリケーション関連の情報を取得するにはどうすればよいでしょうか? 実際、サードパーティの APK のパスがわかっていれば、アプリケーション情報を取得できます。

1. アプリケーションのパッケージ名を取得する


    public String getPackageName(Context context, String apkPath) {
        PackageManager pm = context.getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(apkPath,
                PackageManager.GET_ACTIVITIES);
        if (info != null) {
            ApplicationInfo appInfo = info.applicationInfo;
            try {
                return appInfo.packageName;
            } catch (OutOfMemoryError e) {
                Log.e("Apk PackageName", e.toString());
            }
        }
        return null;
    }

2.APK名を取得します

    public String getApkName(Context context, String apkPath) {
        PackageManager pm = context.getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(apkPath,
                PackageManager.GET_ACTIVITIES);
        if (info != null) {
            ApplicationInfo appInfo = info.applicationInfo;
            String apkName = appInfo.loadLabel(pm).toString();
            try {
                return apkName;
            } catch (OutOfMemoryError e) {
                Log.e("Apk Name", e.toString());
            }
        }
        return null;
    }

3. APK バージョン番号を取得する

   public String getApkVersion(Context context, String apkPath) {
        PackageManager pm = context.getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(apkPath,
                PackageManager.GET_ACTIVITIES);
        if (info != null) {
            ApplicationInfo appInfo = info.applicationInfo;
            String apkVersion = info.versionName == null ? "0" : info.versionName;
            try {
                return apkVersion;
            } catch (OutOfMemoryError e) {
                Log.e("Apk Version", e.toString());
            }
        }
        return null;
    }

4.APKアイコンを取得する

    public static Drawable getApkIcon(Context context, String apkPath) {
        PackageManager pm = context.getPackageManager();
        PackageInfo info = pm.getPackageArchiveInfo(apkPath,
                PackageManager.GET_ACTIVITIES);
        if (info != null) {
            ApplicationInfo appInfo = info.applicationInfo;
            try {
                return appInfo.loadIcon(pm);
            } catch (OutOfMemoryError e) {
                Log.e("Apk Icon", e.toString());
            }
        }
        return null;
    }

5.APKをインストールする


   private void installAPK(Context context, String apkPath) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.setDataAndType(Uri.parse("file://" + apkPath),
                "application/vnd.android.package-archive");
        context.startActivity(intent);
    }

Guess you like

Origin blog.csdn.net/weixin_42433094/article/details/122970577