package com.study.mobilesafe.engine;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import com.study.mobilesafe.domain.AppInfo;
public class AppProvider {
/**
* 得到用户安装的app信息
* @param context
* @return
*/
public static List<AppInfo> getAppInfos(Context context) {
List<AppInfo> infos = new ArrayList<AppInfo>();
PackageManager manager = context.getPackageManager();
List<PackageInfo> installedPackages = manager.getInstalledPackages(0);
for (PackageInfo packageInfo : installedPackages) {
String packageName = packageInfo.packageName;
String versionName = packageInfo.versionName;
//加载Application节点
ApplicationInfo applicationInfo
= packageInfo.applicationInfo;//来到application节点
String name = applicationInfo.loadLabel(manager).toString();
Drawable icon = applicationInfo.loadIcon(manager);
//获取是不是用户程序
boolean isUser;
int flags = applicationInfo.flags;//获取应用程序的标签
if ((flags&ApplicationInfo.FLAG_SYSTEM)
== ApplicationInfo.FLAG_SYSTEM) {
//系统程序
isUser = false;
}else{
isUser = true;
}
boolean isRom;
if ((flags&ApplicationInfo.FLAG_EXTERNAL_STORAGE)
==ApplicationInfo.FLAG_EXTERNAL_STORAGE) {
isRom = false;
}else{
isRom = true;
}
AppInfo info = new AppInfo(name, packageName,
versionName, icon,isUser,isRom);
infos.add(info);
}
return infos;
}
}
得到用户安装的app信息
最新推荐文章于 2019-01-04 14:35:21 发布