【问题标题】:How can I get a list of all installed apps?如何获取所有已安装应用程序的列表?
【发布时间】:2011-05-16 10:39:26
【问题描述】:

帮助!都是一样的黑屏。显示需要添加代码。谢谢。 我使用这样的代码:

package com.tipfile;

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;


public class dop extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dop);
    PackageManager pm = this.getPackageManager();

    Intent intent = new Intent(Intent.ACTION_MAIN, null);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);

    ArrayList<ResolveInfo> list = (ArrayList<ResolveInfo>) 
    pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
    for (ResolveInfo rInfo : list) {
    System.out.println("Installed Applications " + rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
    }
    ListView listView = (ListView) findViewById(R.id.list);
    ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
    listView.setAdapter(aa);
}}

【问题讨论】:

    标签: android package-managers


    【解决方案1】:
      ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
        listView.setAdapter(aa);
    

    您没有使用任何数据初始化aa,因此会出现黑屏。

    您可以从ArrayList&lt;ResolveInfo&gt; list = (ArrayList&lt;ResolveInfo&gt;) 构建一个List&lt;String&gt; 变量并使用接受列表的ArrayAdapter constructor 来填充aa

    编辑

    List<String> myList = new ArrayList<String>();
    ArrayList<ResolveInfo> list = (ArrayList<ResolveInfo>) pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
    for (ResolveInfo rInfo : list) {
        System.out.println("Installed Applications " + rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
    myList.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
    }
    
    ListView listView = (ListView) findViewById(R.id.list);
    ArrayAdapter<String> aa = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, myList);
    listView.setAdapter(aa);
    

    【讨论】:

      【解决方案2】:
      ArrayAdapter<String> aa = new
      ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
      

      把这几行改成

      ArrayAdapter<String> aa = new
      ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-14
        • 2010-11-25
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 1970-01-01
        相关资源
        最近更新 更多