@SuppressLint("QueryPermissionsNeeded")
    private static boolean hasPackageInstalled(@NonNull final String packageName) {
        final List<PackageInfo> packs = CgeoApplication.getInstance().getPackageManager().getInstalledPackages(0);
        for (final PackageInfo packageInfo : packs) {
            if (packageName.equals(packageInfo.packageName)) {
                return true;
            }
        }
        return false;
    }
This will find installed applications even without launch intent (e.g. the streetview plugin).
<br>
Be aware:
Starting with Android 11 getInstalledPackages() will only return packages declared in AndroidManifest.xml
(Add a lint exception, as we have cross-checked our current usages for this method)
main/src/main/java/cgeo/geocaching/utils/ProcessUtils.java