android – 从包管理器中检索应用程序信息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – 从包管理器中检索应用程序信息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2206字,纯文字阅读大概需要4分钟。
内容图文
![android – 从包管理器中检索应用程序信息](/upload/InfoBanner/zyjiaocheng/801/3488eb5229604c258c863be16d21d2a0.jpg)
有没有办法从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();
}
UPDATE
基本上我要做的是用自定义顺序重新排列启动器中图标的排列.如果我可以通过PackageManager检索所需的信息,那将是理想的选择.
为了实现我的工作,我必须能够实现相同的目标
AllApps2D代码正在使用的ApplicationInfo对象,显然:
com.android.Launcher2.ApplicationInfo
这与返回的内容不同:
ApplicationInfo item = pack.getApplicationInfo(package_list.get(i),PackageManager.GET_ACTIVITIES);
这是:
android.content.pm.ApplicationInfo
可用于启动器的代码和我正在使用的类是here.
这些技术都没有在android构建中的launcher2应用程序中工作.还有其他建议吗?
解决方法:
如果要获取所有应用程序,请执行以下操作:
import android.content.pm.ApplicationInfo;
...
List<ApplicationInfo> apps = context.getPackageManager().getInstalledApplications(0);
有关单个应用程序的信息(假设您知道其清单包名称),请执行以下操作:
import android.content.pm.ApplicationInfo;
...
ApplicationInfo app = context.getPackageManager().getApplicationInfo(packageName, 0);
内容总结
以上是互联网集市为您收集整理的android – 从包管理器中检索应用程序信息全部内容,希望文章能够帮你解决android – 从包管理器中检索应用程序信息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。