难道我的#1和谷歌搜索之前就已经但是我找不到制定出对我来说,使用的时候还是因为我得到的错误,也有一定的代码/配件缺失,或者有可能是一个需要安装额外的库中的任何答案文件。
所以基本上我想要做的是检索所有安装的应用程序在Android手机上,并显示出来,但我不知道是如何去这样做。 我经常碰到关于“背景”变量错误,或者我的XML文件并不在一个这样或那样的.java文件相匹配。
会有人好心地给我所需的所有文件的源代码(如XML,JAVA,清单,绘制,布局等),以达到获取所有Android应用程序的目标是什么? 帮助将是非常赞赏
首先创建的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应用程序的列表,并选择一个运行
这将最有可能解决您的问题。
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));
}
}