获取Android系统程序信息

本文介绍了一个用于管理Android应用的Java程序,通过获取并显示已安装应用的名称、包名、版本号和图标信息,实现了应用列表的动态更新。

\

程序代码部分:

public class ApplicatonList extends Activity {

	private List<Map<String, Object>> data;
	Map<String, Object> item;
	private ListView listView = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);

	listView = new ListView(this);
	data = new ArrayList<Map<String, Object>>();
	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<PInfo> apps = getInstalledApps(false); /* false = no system packages */
	final int max = apps.size();
	for (int i=0; i<max; i++) {
	apps.get(i).prettyPrint();
	item = new HashMap<String, Object>();
	item.put("appname", apps.get(i).appname);
	item.put("pname", apps.get(i).pname);
	data.add(item);
	}
	}

	private ArrayList<PInfo> getInstalledApps(boolean getSysPackages) {
	ArrayList<PInfo> res = new ArrayList<PInfo>();
	List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
	for(int i=0;i<packs.size();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.adobex.com/android/source/details/00000424.htm

转载于:https://my.oschina.net/androidcode/blog/105094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值