如何检索所有已安装的Android应用(how to retrieve all installed

2019-07-18 04:51发布

难道我的#1和谷歌搜索之前就已经但是我找不到制定出对我来说,使用的时候还是因为我得到的错误,也有一定的代码/配件缺失,或者有可能是一个需要安装额外的库中的任何答案文件。

所以基本上我想要做的是检索所有安装的应用程序在Android手机上,并显示出来,但我不知道是如何去这样做。 我经常碰到关于“背景”变量错误,或者我的XML文件并不在一个这样或那样的.java文件相匹配。

会有人好心地给我所需的所有文件的源代码(如XML,JAVA,清单,绘制,布局等),以达到获取所有Android应用程序的目标是什么? 帮助将是非常赞赏

Answer 1:

首先创建的main.xml文件如下,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

            <ListView
                android:id="@+id/list1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
            </ListView>

</LinearLayout>

这个list将用于填充安装的应用程序,

现在创建活动类来获取安装的应用程序,

public class AppList extends Activity {
    private ListView lView;
    private ArrayList results;
    List<ResolveInfo> list;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
            results = new ArrayList();
        lView = (ListView) findViewById(R.id.list1);
        PackageManager pm = this.getPackageManager();

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

        list = pm.queryIntentActivities(intent,
            PackageManager.PERMISSION_GRANTED);
        for (ResolveInfo rInfo : list) {
            results.add(rInfo.activityInfo.applicationInfo.loadLabel(pm)
                    .toString());
            Log.w("Installed Applications", rInfo.activityInfo.applicationInfo
                    .loadLabel(pm).toString());
        }
        lView.setAdapter(new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, results));
    }
}

编辑-如果要打开列表中的应用程序,一旦你点击它。 你必须覆盖的ListView的onItemClick方法,并在该方法中,你必须通过意向来打开选择的应用程序。

看看这里,

  • 从另一个应用程序启动应用程序
  • 如何获得安装Android应用程序的列表,并选择一个运行

这将最有可能解决您的问题。



Answer 2:

public class AppList extends Activity {
 private ListView lView;
 private ArrayList results = new ArrayList();

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  lView = (ListView) findViewById(R.id.list1);
  PackageManager pm = this.getPackageManager();

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

  List<ResolveInfo>  list = pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
  for (ResolveInfo rInfo : list) {
   results.add(rInfo.activityInfo.applicationInfo
     .loadLabel(pm).toString());
   Log.w("Installed Applications", rInfo.activityInfo.applicationInfo
     .loadLabel(pm).toString());
  } 
  lView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, results));
    }
}


文章来源: how to retrieve all installed android applications