本周早些时候我问了一个类似的问题,但我仍然不了解如何获取所有已安装应用程序的列表,然后选择一个运行.
我试过了:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
Run Code Online (Sandbox Code Playgroud)
这只显示预先安装的应用程序或可以运行ACTION_MAIN Intent类型的应用程序.
我也知道我可以使用PackageManager来获取所有已安装的应用程序,但是如何使用它来运行特定的应用程序呢?
有没有办法可以获得尚未安装的软件包的应用程序名称,应用程序版本和应用程序图标?(对于sdcard上的一些apk文件)
我试图以这种方式显示任务列表 -
图标| ApplicationName | 复选框
因为我发现没有listview适配器支持这个,所以我决定开发一个自定义适配器,但我无法获取应用程序的图标.到目前为止我试过这个: -
public View getView(int position, View convertView, ViewGroup parent)
{
View v = convertView;
View row = inflater.inflate(R.layout.item, parent, false);
CheckedTextView ctb = (CheckedTextView)row.findViewById(R.id.checkText);
String pkgName = "com.abc.abc";
ctb.setText("bla bla");
ImageView iv = (ImageView)row.findViewById(R.id.image);
List<PackageInfo> pkgs = activity.getPackageManager().getInstalledPackages(0);
for(PackageInfo p : pkgs)
{
if(p.packageName.equals(pkgName))
{
Drawable d = p.applicationInfo.loadIcon(pm);
iv.setImageDrawable(d);
}
}
return row;
}
}
Run Code Online (Sandbox Code Playgroud)
而且我确信我在这段代码中尝试了一些愚蠢的东西.请尽量抓住我做错的事.
谢谢.