• 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;

    }

    }

  • 相关阅读:
    fwt
    fft,ntt
    loj6077
    高维前缀和
    hihocoder 1496 寻找最大值
    HDU 5977 Garden of Eden
    扩展crt
    有标号的DAG计数I~IV
    BZOJ 3160 万径人踪灭
    Codeforces Round #524 (Div. 2) F
  • 原文地址:https://www.cnblogs.com/leehongee/p/3323887.html
Copyright © 2020-2023  润新知