Android AppUtil通用类

1.整体分析

1.1.先看一下源码,可以直接Copy。

public class AppUtil {

    /**
     * 获取当前程序包名
     *
     * @param context 上下文
     * @return 程序包名
     */
    public static String getPackageName(Context context) {
        return context.getPackageName();
    }

    /**
     * 获取程序版本信息
     *
     * @param context 上下文
     * @return 版本名称
     */
    public static String getVersionName(Context context) {
        String versionName = null;
        String pkName = context.getPackageName();
        try {
            versionName = context.getPackageManager().getPackageInfo(pkName, 0).versionName;
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("VersionInfo", "Exception", e);
        }
        return versionName;
    }

    /**
     * 获取程序版本号
     *
     * @param context 上下文
     * @return 版本号
     */
    public static int getVersionCode(Context context) {
        int versionCode = -1;
        String pkName = context.getPackageName();
        try {
            versionCode = context.getPackageManager().getPackageInfo(pkName, 0).versionCode;
        } catch (PackageManager.NameNotFoundException e) {
            Log.e("VersionInfo", "Exception", e);
        }
        return versionCode;
    }

    /**
     * 判断是否安装某个应用
     *
     * @param context     上下文
     * @param packageName 包名
     * @return 是否安装
     */
    public static boolean isAvailable(Context context, String packageName) {
        final PackageManager packageManager = context.getPackageManager();//获取packagemanager
        List<PackageInfo> pInfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息
        //从pinfo中将包名字逐一取出,压入pName list中
        if (pInfo != null) {
            for (int i = 0; i < pInfo.size(); i++) {
                String pn = pInfo.get(i).packageName;
                if (pn.equals(packageName))
                    return true;
            }
        }
        return false;
    }
}
View Code

1.2.主要方法

  • 获取APP包名
  • 获取APP版本信息
  • 获取APP版本号
  • 判断是否安装某个应用  


2.局部分析

2.1.如何获取APP包名

  

   传入一个上下文,直接可以获取包名。

2.2.如何获取APP版本信息

  

  传入一个上下文,直接可以获取版本名称。

2.3.如何获取APP版本号

   

 2.4.判断是否安装某个应用

   

  这里需要知道那个应用的包名,和上下文

  不过通常常用应用的包名都是公开的,比如支付宝微信QQ什么的,就不用担心这个packageName。


3.应用实例

3.1.我调用了这四个函数到一个APP中,执行效果如下

  

  

既然选择了,便不顾风雨兼程。Just follow yourself.
原文地址:https://www.cnblogs.com/Jason-Jan/p/7904022.html