获取Android系统中已安装程序的名字、包名等信息

发表于:2011-06-28来源:未知作者:领测软件测试网采编点击数: 标签:Android
程序代码部分: public class ApplicatonList extends Activity { private List> data; Map item;

  程序代码部分:

  public class ApplicatonList extends Activity {

  private List> data;

  Map item;

  private ListView listView = null;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  listView = new ListView(this);

  data = new ArrayList>();

  listPackages();

  SimpleAdapter adapter = new SimpleAdapter(this, data,

  android.R.layout.simple_list_item_2, new String[] {"appname","pname" }, new int[] {

  android.R.id.text1, android.R.id.text2, });

  listView.setAdapter(adapter);

  setContentView(listView);

  }

  class PInfo {

  private String appname = "";

  private String pname = "";

  private String versionName = "";

  private int versionCode = 0;

  private Drawable icon;

  private void prettyPrint() {

  Log.i("taskmanger",appname + "t" + pname + "t" + versionName + "t" + versionCode + "t");

  }

  }

  private void listPackages() {

  ArrayList apps = getInstalledApps(false); /* false = no system packages */

  final int max = apps.size();

  for (int i=0; i

  apps.get(i).prettyPrint();

  item = new HashMap();

  item.put("appname", apps.get(i).appname);

  item.put("pname", apps.get(i).pname);

  data.add(item);

  }

  }

  private ArrayList getInstalledApps(boolean getSysPackages) {

  ArrayList res = new ArrayList();

  List packs = getPackageManager().getInstalledPackages(0);

  for(int i=0;i

  PackageInfo p = packs.get(i);

  if ((!getSysPackages) && (p.versionName == null)) {

  continue ;

  }

  PInfo newInfo = new PInfo();

  newInfo.appname = p.applicationInfo.loadLabel(getPackageManager()).toString();

  newInfo.pname = p.packageName;

  newInfo.versionName = p.versionName;

  newInfo.versionCode = p.versionCode;

  newInfo.icon = p.applicationInfo.loadIcon(getPackageManager());

  res.add(newInfo);

  }

  return res;

  }

  } 

 

 

 

原文转自:http://www.ltesting.net