gpt4 book ai didi

android - 从包管理器中检索应用程序信息

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:42 24 4
gpt4 key购买 nike

有什么方法可以从 PackageManager 中提取 ApplicationInfo 对象吗?我尝试了许多不同类型的方法来实现这一点,但都无济于事。我目前正在使用默认的 android 启动器屏幕(应用程序抽屉),并希望专门从包名称中获取包信息。这不是在应用层,而是在Launcher2应用程序的构建层,源。我正在使用的 android 版本是 2.3.3。

这是我尝试过的:

ApplicationInfo item = pack.getApplicationInfo(package_list.get(i), PackageManager.GET_ACTIVITIES);

错误:

Type mismatch: cannot convert from android.content.pm.ApplicationInfo to com.android.launcher2.ApplicationInfo

这不是为了检索当前正在运行的程序包,而是检索手机本身上的所有应用程序。

我发现:

pack.getApplicationInfo(packageName, flags)

不返回与传递给 AllApps2D.java 中下面函数的 ApplicationInfo 相同的 ApplicationInfo 对象:

public void addApps(ArrayList<ApplicationInfo> list)

我正在尝试仅使用名称从包本身中提取 ApplicationInfo 对象。

问题的功能如下,在AllApps2D.java(Launcher2文件夹)的开源代码中找到

 private ArrayList<ApplicationInfo> mAllAppsList = new ArrayList<ApplicationInfo>();

public void addApps(ArrayList<ApplicationInfo> list) {
final int N = list.size();

for (int i=0; i<N; i++) {
final ApplicationInfo item = list.get(i);
int index = Collections.binarySearch(mAllAppsList, item,
LauncherModel.APP_NAME_COMPARATOR);
if (index < 0) {
index = -(index+1);
}
mAllAppsList.add(index, item);
}
mAppsAdapter.notifyDataSetChanged();
}

更新

基本上,我要做的是使用自定义顺序重新排列启动器中的图标。如果我可以通过 PackageManager 检索为此所需的信息,那就太理想了。

为了让我实现的内容发挥作用,我必须能够拉动 SAMEAllApps2D 代码正在使用的 ApplicationInfo 对象,显然是:

com.android.Launcher2.ApplicationInfo

这与返回的内容不同:


ApplicationInfo 项目 = pack.getApplicationInfo(package_list.get(i), PackageManager.GET_ACTIVITIES);

这是:


android.content.pm.ApplicationInfo

可用于启动器的代码以及我正在使用的类已找到 here .

这些技术都不能WITHIN android 构建中的 launcher2 应用程序。还有其他建议吗?

最佳答案

如果要获取所有应用程序,请执行以下操作:

import android.content.pm.ApplicationInfo;

...

List<ApplicationInfo> apps = context.getPackageManager().getInstalledApplications(0);

有关单个应用程序的信息(假设您知道其 list 包名称),在这行完成:

import android.content.pm.ApplicationInfo;

...

ApplicationInfo app = context.getPackageManager().getApplicationInfo(packageName, 0);

关于android - 从包管理器中检索应用程序信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6418945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com