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>最后自己定义一个适配器就可以了,代码不贴了。。。。
日拱一卒百无有尽,功不唐捐终入海
浙公网安备 33010602011771号