Android应用管理工具,类似一个Lancher,为了简单,没有实现抽屉效果。只是进行一个简单的链表显示。
这里介绍一下核心代码的实现。
1.获取当前手机中的应用程序的链表。
private List<ApplicationInfo> mAppList;
mAppList = getPackageManager().getInstalledApplications(0);
2.将链表中的应用程序进行显示在链表中,也即是自己的Adapter如何设计。
ViewHolder holder = (ViewHolder) convertView.getTag();
ApplicationInfo item = getItem(position); //从链表list中获取一个item
holder.iv_icon.setImageDrawable(item.loadIcon(getPackageManager()));
holder.tv_name.setText(item.loadLabel(getPackageManager()));
3.添加打开和删除的功能,如果打开,则打开应用,如果删除,则进行相应的卸载工作。
private void open(ApplicationInfo item) {
// open app
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(item.packageName);
List<ResolveInfo> resolveInfoList = getPackageManager()
.queryIntentActivities(resolveIntent, 0);
if (resolveInfoList != null && resolveInfoList.size() > 0) {
ResolveInfo resolveInfo = resolveInfoList.get(0);
String activityPackageName = resolveInfo.activityInfo.packageName;
String className = resolveInfo.activityInfo.name;
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName componentName = new ComponentName(
activityPackageName, className);
intent.setComponent(componentName);
startActivity(intent);
}
}
卸载软件代码如下:
private void delete(ApplicationInfo item) {
// delete app
try {
Intent intent = new Intent(Intent.ACTION_DELETE); //调用系统默认的删除功能
intent.setData(Uri.fromParts("package", item.packageName, null));
startActivity(intent);
} catch (Exception e) {
}
}