我对使用集合的app小部件的概念完全陌生,更不用说app小部件了。我想创建一个应用程序小部件,它可以收集用户安装的应用程序列表,并将它们放在应用程序小部件的列表视图中,可以进行检查。小部件将相应地更新列表。 我环顾四周,看看有没有办法实现这一点,我发现使用带有集合的app小部件可能是可能的。 我是以正确的方式来做这件事的吗?任何帮助我做到这一点的资源或提示都是适当的!
答案 0 :(得分:0)
你有点要求每个人都写你的应用程序(这是一个太笼统的问题)。也许您应该将问题分成更易于管理的问题,并自己做一些初步研究以更好地定义问题。
你可以将一个列表视图放在一个小部件中(你可以将任何UI元素放在Android的任何控件中 - 因为一切都只是View的子类)。
要获取用户已安装的所有应用程序的列表,请使用PackageManager(应用程序列表在List中捕获,这是一种Collection):
PackageManager packageManager = null;
List<ApplicationInfo> appsList = new ArrayList<ApplicationInfo>();
try {
packageManager = getPackageManager();
if (packageManager != null) {
appsList = packageManager.getInstalledApplications(0);
}
} catch (final Exception e1) {
Log.v("PackageManager", "This is my error: ", e1);
}
答案 1 :(得分:0)
此API会在某些HTC设备等中崩溃。我们通过以下方式查找以下方式至少包含一项活动的应用。
List<String> installedPackageNamesList = new ArrayList<String>();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> resolveInfoList = context.getPackageManager().queryIntentActivities(intent, 0);
for(ResolveInfo info : resolveInfoList){
if(info.activityInfo != null && info.activityInfo.packageName != null){
installedPackageNamesList.add(info.activityInfo.packageName);
}
}