通过使用PackageManager的getInstalledPackages得到已经安装程序,通过PackageInfo得到应用程序的包名和图标和应用程序名字:
package com.ustc.mobilemanager.engine;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import com.ustc.mobilemanager.domain.AppInfo;
/**
* 业务方法,提供手机里面安装的应用程序的信息
*
* @author
*
*/
public class AppInfoProvider {
/**
* 获取所有的安装的应用程序的信息
*
* @param context
* @return
*/
public static List<AppInfo> getAppInfos(Context context) {
PackageManager pm = context.getPackageManager();
// 所有的安装在系统上的应用程序包信息
List<PackageInfo> packInfos = pm.getInstalledPackages(0);
List<AppInfo> appInfos = new ArrayList<AppInfo>();
for (PackageInfo packageInfo : packInfos) {
String packageName = packageInfo.packageName;
Drawable icon = packageInfo.applicationInfo.loadIcon(pm);
String name = packageInfo.applicationInfo.loadLabel(pm).toString();
AppInfo appInfo = new AppInfo();
appInfo.setIcon(icon);
appInfo.setName(name);
appInfos.add(appInfo);
}
return appInfos;
}
}