美文网首页Android 小技巧Android技术知识Android知识
利用PackageInfo判断应用首次安装还是覆盖安装

利用PackageInfo判断应用首次安装还是覆盖安装

作者: 于卫国 | 来源:发表于2017-07-28 11:38 被阅读44次

    本文首发:http://yuweiguocn.github.io/

    本文介绍了如何利用PackageInfo判断应用首次安装还是覆盖安装。

    《琵琶记》
    我本将心向明月
    奈何明月照沟渠
    落花有意随流水
    流水无心恋落花
    -元,高明

    背景

    开发过程中产品提出一个这样的需求,应用如果是覆盖安装要做一些指定逻辑处理。如果之前的版本使用SP保存了相关版本号什么的,那可以很容易地判断,如果之前的版本并没有一个可以判断覆盖安装的值,那该怎么办?

    解决方案

    我们可以根据PackageInfo中的firstInstallTime和lastUpdateTime的值判断是首次安装还是覆盖安装。

        public static boolean isFirstInstall(Context context) {
            return getPackageFirstInstallTime(context) == getPackageLastUpdateTime(context);
        }
    
        public static long getPackageFirstInstallTime(Context context) {
            String name = context.getPackageName();
            long time = 0;
            try {
                time = context.getPackageManager().getPackageInfo(name, 0).firstInstallTime;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return time;
        }
    
        public static long getPackageLastUpdateTime(Context context) {
            String name = context.getPackageName();
            long time = 0;
            try {
                time = context.getPackageManager().getPackageInfo(name, 0).lastUpdateTime;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return time;
        }
    

    相关文章

      网友评论

        本文标题:利用PackageInfo判断应用首次安装还是覆盖安装

        本文链接:https://www.haomeiwen.com/subject/mamxlxtx.html