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) { } }