我正在尝试复制Android默认的应用程序网格,加载所有“可启动”的应用程序。
我是这样做的。//generate the intent to get the application list
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager manager = getPackageManager();
applicationList = manager.queryIntentActivities(mainIntent, 0);
//sort the list
Collections.sort(applicationList, new ResolveInfo.DisplayNameComparator(manager));
//user in calculating percentage.
if (applicationList.size() > 0 ){
for (ResolveInfo info : applicationList) {
一旦我对列表进行处理就会在网格视图中显示应用程序的名称+图标,但是当涉及到相机时,我会不断获得图库标签和图标。
获取我使用的标签:
PackageManager manager = getPackageManager();
(String) manager.getApplicationLabel(applicationInfo)
获取图标
info.loadIcon(getContext().getPackageManager());
其中info是ApplicationInfo对象。
我想知道会发生什么。
到目前为止,我刚刚注意到该应用程序,但它可能是另一个。
任何人都知道如何从相机ResolveInfo中获取Camera应用程序
在尝试调整屏幕截图时,这是我为ResolveInfo获取的信息
感谢您的建议。 塞萨尔格莱兹。
答案 0 :(得分:1)
我想知道会发生什么。
您正在获取应用程序的图标和标签。 “相机”和“图库”来自一个带有两个可启动活动的应用程序。
您需要获取活动的图标和标签,而不是应用程序。致电loadLabel()
上的loadIcon()
和ResolveInfo
,获取ResolveInfo
指向的活动的图标和标签。
This sample application演示如何构建此类启动器,并正确获取其条目的相机活动图标。