AppInfoUtil 获取App应用程序信息工具类

来源:互联网 发布:疯狂淘宝李涛收费 编辑:程序博客网 时间:2024/06/08 18:53

这段时间在写快速开发框架,抽空总结了一下网上的获取App信息的工具,相对来说比较灵活。
参数为Context context
能够获取应用名称,应用包名,版本号,版本名称,签名,应用图标


package com.umk.andx3.util;

 
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
 
/**
 * @author Winnid
 * @title 应用程序信息
 * @version:1.0
 * @since:13-12-18
 */
public class AppInfoUtil {
 
    public static PackageManager packageManager = null;
    public static PackageInfo packageInfo = null;
    public static ApplicationInfo applicationInfo = null;
 
    private static PackageManager getPackageManager(Context context) {
        if(packageManager == null) {
            packageManager = context.getApplicationContext().getPackageManager();
        }
        return packageManager;
    }
 
    public static PackageInfo getPackageInfo(Context context) {
        if(packageInfo == null) {
            try {
                packageInfo = getPackageManager(context).getPackageInfo(context.getPackageName(), 0);
            } catch (PackageManager.NameNotFoundException e) {
                packageInfo = null;
            }
        }
        return packageInfo;
    }
 
    private static ApplicationInfo getApplicationInfo(Context context) {
        if(applicationInfo == null) {
            try {
                applicationInfo = getPackageManager(context).getApplicationInfo(context.getPackageName(), 0);
            } catch (PackageManager.NameNotFoundException e) {
                applicationInfo = null;
            }
        }
        return applicationInfo;
    }
 
 
    public static String getAppName(Context context) {
        String applicationName = getPackageManager(context).getApplicationLabel(getApplicationInfo(context)).toString();
        return applicationName;
    }
 
 
 
    public static String getPackageName(Context context) {
        String packageName = getPackageInfo(context).packageName;
        return packageName;
    }
 
    public static String getVersionName(Context context) {
        String versionName = getPackageInfo(context).versionName;
        return versionName;
    }
 
    public static int getVersionCode(Context context) {
        int versionCode = getPackageInfo(context).versionCode;
        return versionCode;
    }
 
    public static Drawable getAppIcon(Context context) {
        Drawable appIcon = getApplicationInfo(context).loadIcon(getPackageManager(context));
        return appIcon;
    }
 
    /*
     * 获取程序的签名
     */
    public String getAppSignature(Context context){
        String appSignature = getPackageInfo(context).signatures[0].toCharsString();
        return appSignature;
    }
}
0 0