如何获取Android中已安装应用程序的列表?

如何获取Android中已安装应用程序的列表?,android,Android,这是源代码 public class GetAppList extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { List<PackageInfo> appListInfo

这是源代码

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
    }

    }
}
公共类GetAppList扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
试一试{
List appListInfo=this.getPackageManager()
.getInstalledPackages(0);
JSONArray ja=新的JSONArray();
对于(PackageInfo p:appListInfo){
如果(p.applicationInfo.uid>10000){
JSONObject jo=新的JSONObject();
jo.put(“标签”,p.applicationInfo.name);
jo.put(“packageName”,p.applicationInfo.packageName);
ja.put(jo);
}
}
系统输出println(ja);
}捕获(例外e){
//TODO:处理异常
}
}
}
这就是结果~

[{“packageName”:“com.android.soundrecorder”},{“packageName”:“com.android.alarmclock”},{“packageName”:“com.android.launcher”},{“packageName”:“com.google.android.providers.enhancedgooglesearch”},{“packageName”:“com.gameloft.android.ANMP.GloftAsphalt5.aspholt5”},{“packageName”:“com.android.contacts”}{“packageName”:“com.zhang7nan.android”},{“packageName”:“com.android.inputmethod.latin”},{“packageName”:“irdc.ex03_19”},{“packageName”:“com.android.calculator2”},{“packageName”:“com.zhang7nan.getAppList”},{“packageName”:“com.android.htmlviewer”},{“packageName”:“com.androidbook.layout”},{“packageName”:“irdc.EX05"com.android.browser“},{”packageName“:“com.android.customlocale”},{”packageName“:“com.android.music”},{”packageName“:“com.android.providers.userdictionary”},{”packageName“:“com.android.inputmethod.pinyin”},{”packageName“:“android.tts”},{”packageName“:“com.android.providers.media”},{”packageName:“com.android.providers.media”com.android.globalsearch“},{“packageName”:“com.wd.AndroidDaemon”},{“packageName”:“com.android.fallback”},{“packageName”:“com.gameloft.android.GAND.GloftBia2.bia2”},{“packageName”:“com.android.posture.builder”},{“packageName”:“org.lee.android”},{“packageName”:“android.tether”},{“packageName”:“com.android.providers.contacts”},{“packageName”:“packageName”:com.android.providers.applications“},{“packageName”:“com.android.providers.drm”},{“packageName”:“com.android.term”},{“packageName”:“com.android.packageinstaller”},{“packageName”:“com.svox.pico”},{“packageName”:“com.android.camer”},{“packageName”:“jp co.omronsoft.wnpackagename”},{“com.android.email”},{packageName:“com.wandoujia.wandouapp”},{“packageName:“com.android.spare_parts”},{“packageName:“com.android.providers.downloads”}]


应用程序名称不存在!救命啊

这里有一个片段说明了您想要做什么:


    public InstalledPackage(PackageManager pm, ApplicationInfo ai, Drawable defaultIcon) {
        name = ai.packageName;
        icon = defaultIcon;
        pkg = ai.packageName;
        if (ai.labelRes != 0) {
            name = (String) pm.getText(ai.packageName, ai.labelRes, ai);
        }
        if (ai.icon != 0) {
            icon = pm.getDrawable(ai.packageName, ai.icon, ai);
        }
    }

请记住,许多软件包都没有标签。

这里有一个片段说明了您想要做什么:


    public InstalledPackage(PackageManager pm, ApplicationInfo ai, Drawable defaultIcon) {
        name = ai.packageName;
        icon = defaultIcon;
        pkg = ai.packageName;
        if (ai.labelRes != 0) {
            name = (String) pm.getText(ai.packageName, ai.labelRes, ai);
        }
        if (ai.icon != 0) {
            icon = pm.getDrawable(ai.packageName, ai.icon, ai);
        }
    }
请记住,许多软件包没有标签。

解决方案:

    JSONArray ja = new JSONArray();
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost request = new HttpPost(sendDataUrl.toString());
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> appListInfo = pm.getInstalledPackages(0);
        for (PackageInfo p : appListInfo) {
            if (p.applicationInfo.uid > 10000) {
                JSONObject jo = new JSONObject();
                jo.put("label", p.applicationInfo.loadLabel(pm).toString());
                jo.put("packageName", p.applicationInfo.packageName);
                ja.put(jo);
            }

        }
JSONArray ja=new-JSONArray();
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost请求=新建HttpPost(sendDataUrl.toString());
List params=new ArrayList();
PackageManager pm=context.getPackageManager();
List appListInfo=pm.getInstalledPackages(0);
对于(PackageInfo p:appListInfo){
如果(p.applicationInfo.uid>10000){
JSONObject jo=新的JSONObject();
jo.put(“label”,p.applicationInfo.loadLabel(pm.toString());
jo.put(“packageName”,p.applicationInfo.packageName);
ja.put(jo);
}
}
谢谢同志们解决方案:

    JSONArray ja = new JSONArray();
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost request = new HttpPost(sendDataUrl.toString());
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        PackageManager pm = context.getPackageManager();
        List<PackageInfo> appListInfo = pm.getInstalledPackages(0);
        for (PackageInfo p : appListInfo) {
            if (p.applicationInfo.uid > 10000) {
                JSONObject jo = new JSONObject();
                jo.put("label", p.applicationInfo.loadLabel(pm).toString());
                jo.put("packageName", p.applicationInfo.packageName);
                ja.put(jo);
            }

        }
JSONArray ja=new-JSONArray();
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost请求=新建HttpPost(sendDataUrl.toString());
List params=new ArrayList();
PackageManager pm=context.getPackageManager();
List appListInfo=pm.getInstalledPackages(0);
对于(PackageInfo p:appListInfo){
如果(p.applicationInfo.uid>10000){
JSONObject jo=新的JSONObject();
jo.put(“label”,p.applicationInfo.loadLabel(pm.toString());
jo.put(“packageName”,p.applicationInfo.packageName);
ja.put(jo);
}
}

谢谢同志们

我不明白你们的问题是什么?看起来你们已经能够获得已安装应用程序的列表了?我不明白你们的问题是什么?看起来你们已经能够获得已安装应用程序的列表了?