对于手机上安装的所有应用程序,我需要访问:
- 姓名
- 图标
- 可以安装应用程序的 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/