你可以使用PackageManager类的getActivityInfo()方法来获取指定包名的应用信息。如果应用未安装,则会抛出PackageManager.NameNotFoundException异常。你可以在catch块中处理此异常,并返回null。以下是一个示例代码:\n\njava\nimport android.content.ComponentName;\nimport android.content.Context;\nimport android.content.Intent;\nimport android.content.pm.ActivityInfo;\nimport android.content.pm.PackageManager;\n\npublic class AppUtils {\n\n public static String getLauncherNameByPackageName(Context context, String packageName) {\n PackageManager packageManager = context.getPackageManager();\n Intent intent = new Intent(Intent.ACTION_MAIN);\n intent.addCategory(Intent.CATEGORY_LAUNCHER);\n intent.setPackage(packageName);\n ActivityInfo[] activityInfos = null;\n try {\n activityInfos = packageManager.queryIntentActivities(intent, 0);\n } catch (PackageManager.NameNotFoundException e) {\n e.printStackTrace();\n }\n if (activityInfos != null && activityInfos.length > 0) {\n ComponentName componentName = new ComponentName(packageName, activityInfos[0].name);\n try {\n ActivityInfo activityInfo = packageManager.getActivityInfo(componentName, 0);\n return activityInfo.loadLabel(packageManager).toString();\n } catch (PackageManager.NameNotFoundException e) {\n e.printStackTrace();\n }\n }\n return null;\n }\n}\n\n\n你可以在你的Activity或Fragment中调用该方法,传入应用的包名即可获取应用的桌面名称:\n\njava\nString packageName = "com.example.app";\nString launcherName = AppUtils.getLauncherNameByPackageName(this, packageName);\nif (launcherName != null) {\n // 应用已安装\n // 处理应用的桌面名称\n} else {\n // 应用未安装\n // 返回null或进行其他处理\n}\n

Android 开发:获取指定应用桌面名称(含未安装情况)

原文地址: https://www.cveoy.top/t/topic/o783 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录