Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00003259

Android中获取系统上安装的APP信息,并且提供卸载、区别用户应用和系统应用的小程序,供初学者参考。

public class PakageInfoProvider {

private static final String tag = "GetappinfoActivity";

private Context context;

private List<AppInfo> appInfos;

private AppInfo appInfo;

public PakageInfoProvider(Context context) {

super();

this.context = context;

}

public List<AppInfo> getAppInfo() {

PackageManager pm = context.getPackageManager();

List<PackageInfo> pakageinfos = pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);

appInfos = new ArrayList<AppInfo>();

for (PackageInfo packageInfo : pakageinfos) {

appInfo = new AppInfo();

//获取字符串方法

context.getString(R.string.app_name);

context.getResources().getString(R.string.app_name);

//获取尺寸资源方法

context.getResources().getDimension(R.dimen.test);

//获取xml文件并且返回的是XmlResourceParse类,其继承与XmlPullParse

XmlResourceParser xmlrp = context.getResources().getXml(R.xml.yo);

// 获取应用程序的名称,不是包名,而是清单文件中的labelname

String str_name = packageInfo.applicationInfo.loadLabel(pm).toString();

appInfo.setAppName(str_name);

// 获取应用程序的版本号码

String version = packageInfo.versionName;

appInfo.setAppVersion(version);

// 获取应用程序的快捷方式图标

Drawable drawable = packageInfo.applicationInfo.loadIcon(pm);

appInfo.setDrawable(drawable);

// 获取应用程序是否是第三方应用程序

appInfo.setIsUserApp(filterApp(packageInfo.applicationInfo));

//给一同程序设置包名

appInfo.setPackageName(packageInfo.packageName);

Logger.i(tag, "版本号:" + version + "程序名称:" + str_name);

appInfos.add(appInfo);

appInfo = null;

}

return appInfos;

}

/**

* 三方应用程序的过滤器

*

* @param info

* @return true 三方应用 false 系统应用

*/

public boolean filterApp(ApplicationInfo info) {

if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) {

// 代表的是系统的应用,但是被用户升级了. 用户应用

return true;

} else if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {

// 代表的用户的应用

return true;

}

return false;

}

}

Android中获取系统上安装的APP信息

更多相关文章

  1. Android实现系统下拉栏的消息提示——Notification
  2. 获取系统语言的方法
  3. Android:安装APK包以后系统文件目录的变化
  4. Android 系统信息获取(CPU,RAM,ROM,Battery,SD-card,版本等)
  5. android 系统裁剪
  6. 启动android后没有应用图标,找不到应用程序
  7. 【精华】Android应用程序框架分析
  8. Android调用系统Activity选取图像部分区域

随机推荐

  1. 2016这一年,回顾我们一起走过的"编码美丽"
  2. Android(安卓)RIL log全记录
  3. Android版本管理解决方法小议
  4. 获取Android自己写好了的apk以及反编译
  5. android 数据储存——网络存储(5)
  6. Android视图绘制流程完全解析,带你一步步
  7. 【Android自动化打包】03. APK的数字签名
  8. Android 开机启动应用
  9. Android之文件保存 — Bitmap保存到SD卡
  10. Unity导出android工程集成到android stud