List<PackageInfo> appListInfo=context.getPackageManager()
.getInstalledPackages(0);
for (PackageInfo p : appListInfo) {
System.out.println(p.applicationInfo.name);
System.out.println(p.applicationInfo.packageName);
}
用这种做法很奇怪,只能取出所有包名,取不出来程序的名字~求解
package com.zhang7nan.getAppList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.content.pm.PackageInfo;
import android.os.Bundle;
public class GetAppList extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
List<PackageInfo> appListInfo = this.getPackageManager()
.getInstalledPackages(0);
JSONArray ja = new JSONArray();
for (PackageInfo p : appListInfo) {
if (p.applicationInfo.uid > 10000) {
JSONObject jo = new JSONObject();
jo.put("label", p.applicationInfo.name);
jo.put("packageName", p.applicationInfo.packageName);
ja.put(jo);
}
}
System.out.println(ja);
} catch (Exception e) {
// TODO: handle exception
} }}
jo.put("packageName", p.applicationInfo.loadLabel(this.getPackageManager()));