PackageManager.getInstalledApplications(flag) 中标准应用程序的哪个标志?
Which flag for standard apps in PackageManager.getInstalledApplications(flag)?
当我在 Android 智能手机上打开 Android 主菜单时,我会看到一组应用程序,例如 Youtube、计算器、电子邮件客户端等。那里看不到任何系统内容或任何库。
要以编程方式检索这些应用程序,我会:
PackageManager.getInstalledApplications(flag: Int)
我从中获得了 ApplicationInfo
的列表,其中还包含比提到的安装的标准应用程序更多的内容。我必须设置什么标志才能仅获得与我在智能手机上向上滑动时看到的相同的应用程序?
val mainIntent = Intent(Intent.ACTION_MAIN, null)
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
val appList = context.getPackageManager().queryIntentActivities( mainIntent, 0)
您可以尝试获取所有用户应用(以及您的启动器显示的应用)
您可能需要在 Android 10 以上的清单中添加额外的权限
编辑:如果您想在列表中使用 ApplicationInfo 而不是 ResolveInfo,您可以像这样检索它:
appList[your_index].activityInfo.applicationInfo
当我在 Android 智能手机上打开 Android 主菜单时,我会看到一组应用程序,例如 Youtube、计算器、电子邮件客户端等。那里看不到任何系统内容或任何库。
要以编程方式检索这些应用程序,我会:
PackageManager.getInstalledApplications(flag: Int)
我从中获得了 ApplicationInfo
的列表,其中还包含比提到的安装的标准应用程序更多的内容。我必须设置什么标志才能仅获得与我在智能手机上向上滑动时看到的相同的应用程序?
val mainIntent = Intent(Intent.ACTION_MAIN, null)
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER)
val appList = context.getPackageManager().queryIntentActivities( mainIntent, 0)
您可以尝试获取所有用户应用(以及您的启动器显示的应用)
您可能需要在 Android 10 以上的清单中添加额外的权限
编辑:如果您想在列表中使用 ApplicationInfo 而不是 ResolveInfo,您可以像这样检索它:
appList[your_index].activityInfo.applicationInfo