展示系统应用和用户应用的列表

来源:互联网 发布:拍大师登录网络超时 编辑:程序博客网 时间:2024/06/03 20:41
package com.example.phone.engine;import java.util.ArrayList;import java.util.List;import com.example.phone.db.domain.AppInfo;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;public class AppInfoProvider {public static ArrayList<AppInfo> getAppInfoList(Context context) {PackageManager pm = context.getPackageManager();List<PackageInfo> list = pm.getInstalledPackages(0);ArrayList<AppInfo> appInfoList = new ArrayList<AppInfo>();for (PackageInfo info : list) {AppInfo appInfo = new AppInfo();appInfo.setPackageName(info.packageName);ApplicationInfo applicationInfo = info.applicationInfo;appInfo.setName(applicationInfo.loadLabel(pm).toString());appInfo.setIcon(applicationInfo.loadIcon(pm));if((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0) {appInfo.setSdcard(false);appInfo.setSystem(true);} else {appInfo.setSystem(false);appInfo.setSdcard(true);}appInfoList.add(appInfo);}return appInfoList;}}
AppInfo是存储信息的一个类。使用下面这行代码来判断是否为系统应用
if((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0) {appInfo.setSdcard(false);appInfo.setSystem(true);} else {appInfo.setSystem(false);appInfo.setSdcard(true);}


 
阅读全文
0 0