Blankj/AndroidUtilCode

Detect if app is newly installed or updated

Aperta

#1430 aperta il 15 gen 2021

 (0 commenti) (0 reazioni) (1 assegnatario)Java (10.620 fork)batch import
help wanted

Metriche repository

Star
 (33.635 stelle)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

These 2 features are important and useful to have in AppUtils. it is to detect whether the current app is installed newly, or got upgraded from a lower version. There are many use cases for this functionality.

Source: [https://stackoverflow.com/questions/26352881/detect-if-new-install-or-updated-version-android-app/43570229]

Check if first install:

public static boolean isFirstTimeInstalled(Context context) {
    try {
        long firstInstallTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime;
        long lastUpdateTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime;
        return firstInstallTime == lastUpdateTime;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return true;
    }
}

Check if app is upgraded:


public static boolean isAppUpgraded(Context context) {
    try {
        long firstInstallTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).firstInstallTime;
        long lastUpdateTime = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).lastUpdateTime;
        return firstInstallTime != lastUpdateTime;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return false;
    }
}

Thank you and good luck!

Guida contributor