zoukankan      html  css  js  c++  java
  • Android中获取系统上安装的APP信息

    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;

    }

    }

  • 相关阅读:
    webgis笔记
    应用gis笔记
    专业程序设计part2
    计算机图形学笔记
    底层学习笔记(打开黑箱世界)
    语言甄别笔记
    使用C++输入一个包含空格的字符串,再输入单独的一个字符,找到这个字符串中当前字符的个数(注意不区分大小写)
    每日刷刷C语言之输入三个数找到最小值
    C语言实现字符串大小写转换
    C语言实现头插法
  • 原文地址:https://www.cnblogs.com/leehongee/p/3323887.html
Copyright © 2011-2022 走看看