gpt4 book ai didi

android - ApplicationInfo 与 PackageInfo 与 ResolveInfo

转载 作者:太空狗 更新时间:2023-10-29 12:44:36 33 4
gpt4 key购买 nike

对于手机上安装的所有应用程序,我需要访问:

  • 姓名
  • 图标
  • 可以安装应用程序的 google play url

我查看了 ApplicationInfo,但它似乎没有向我提供此信息。我听说过 PackageInfo 和 ResolveInfo,但是我很困惑它们之间有什么区别,应该在哪里使用哪一个?最后,我可以使用什么来查找有关已安装应用程序的上述三个详细信息?

对于包名,我得到像 com.something.some 这样的东西

这是我用来获取应用程序的代码:

final PackageManager pm = getPackageManager();
ArrayList<ApplicationData> listAppData = new ArrayList<ApplicationData>();

//get a list of installed apps.
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);

for (ApplicationInfo packageInfo : packages) {
listAppData.add(new ApplicationData(packageInfo));
}

ApplicationData 是我自己的类,我从 packageInfo 中提取信息

最佳答案

此函数将返回包含图标、名称和包的应用程序列表。

有了这个包,你可以构建 url:

https://play.google.com/store/apps/details?id= <PACKAGE>

参见:

public class Application {

private String packageName;
private String name;
private Drawable icon;
private boolean checked;
...

private List<Application> getAllApplications(Context context)
throws NameNotFoundException {

PackageManager packageManager = context.getPackageManager();
List<PackageInfo> packages = packageManager.getInstalledPackages(0);

List<Application> myPackages = new ArrayList<Application>();

for (PackageInfo pack : packages) {
if (pack.versionName == null) {
continue;
}

Application newPack = new Application();
newPack.setPackageName(pack.packageName);
newPack.setName(pack.applicationInfo.loadLabel(packageManager)
.toString());
newPack.setIcon(pack.applicationInfo.loadIcon(packageManager));

myPackages.add(newPack);
}

return myPackages;
}

关于android - ApplicationInfo 与 PackageInfo 与 ResolveInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20490022/

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