android 获取已安装app应用信息

先看效果


主要代码如下:

public class GetAppInfoActivity extends Activity {
	ArrayList<PInfo> appList = new ArrayList<PInfo>();
	private ListView listView = null;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		listApp();

		listView = (ListView) findViewById(R.id.listviewApp);
		AppAdapter appAdapter = new AppAdapter(GetAppInfoActivity.this, appList);
		if (listView != null) {
			listView.setAdapter(appAdapter);
		}
	}
	private void listApp() {
		List<PackageInfo> packages = getPackageManager()
				.getInstalledPackages(0);
		for (int i = 0; i < packages.size(); i++) {
			PackageInfo packageInfo = packages.get(i);
			PInfo tmpInfo = new PInfo();
			tmpInfo.appname = packageInfo.applicationInfo.loadLabel(
					getPackageManager()).toString();
			tmpInfo.icon = packageInfo.applicationInfo
					.loadIcon(getPackageManager());
			// 判断是否为系统级应用, 若不是,展示出来
			if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
				appList.add(tmpInfo);
			}
		}
	}
}


class PInfo {
		public String appname;
		public Drawable icon;
	}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="@string/app_icon"
        android:textColor="#ff3030"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="88dp"
        android:text="@string/app_label"
        android:textColor="#ff3030"
        android:textSize="20sp" />

    <ListView
        android:id="@+id/listviewApp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1" >
    </ListView>

</RelativeLayout>

test.xml

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

    <ImageView
        android:id="@+id/icon"
        android:layout_width="50dp"
        android:layout_height="50dp"
         />

    <TextView
        android:id="@+id/appName"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="appName"      
        android:textSize="20sp" />

</LinearLayout>



最后自己定义一个适配器就可以了,代码不贴了。。。。

posted @ 2015-09-09 17:49  稻香鱼  阅读(826)  评论(0)    收藏  举报