• 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.
  • 相关阅读:
    2017 9 26
    NOI2002 银河英雄传说(luogu p1196)
    luogu [USACO08OCT]打井Watering Hole
    luogu P2784 化学1(chem1)- 化学合成
    2017 9 24
    2017.9.24 noip模拟赛 day2—组合数
    Java 接口——2
    Java 接口——1
    Java 泛型
    Java 随笔——8
  • 原文地址:https://www.cnblogs.com/Jason-Jan/p/7904022.html
Copyright © 2020-2023  润新知