得到手机中所有应用信息的列表,返回list< AppInfo>类型,直接创建实例类对象可以等于这个方法。配合BaseAdapter可以展现整个列表
/**
* 得到手机中所有应用信息的列表
* AppInfo
* Drawable icon 图片对象
* String appName
* String packageName
* @return
*/
protected List<AppInfo> getAllAppIofo(){
List<AppInfo> list=new ArrayList<AppInfo>();
//得到应用packageManager
PackageManager packageManager=getPackageManager();
//创建一个主界面intent
Intent intent=new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//得到包含应用信息列表
List<ResolveInfo> ResolveInfos=packageManager.queryIntentActivities(intent,0);
//遍历
for(ResolveInfo ri:ResolveInfos){
//得到包名
String packageName=ri.resolvePackageName;
//得到图标
Drawable icon=ri.loadIcon(packageManager);
//得到应用名称
String appName=ri.loadLabel(packageManager).toString();
//封装应用信息对象
AppInfo appInfo=new AppInfo(icon,appName,packageName);
//添加到list
list.add(appInfo);
}
return list;
}
案例:做一个显示所有应用列表的应用,点击其中某一个可以弹出应用名称,长按从表格中删除应用(不是硬盘删除)
private ListView lv_main;
private List<AppInfo> data;
private AppAdapter adapter;
//private GridView gv_main;
@Override