Blankj/AndroidUtilCode

Detect if app is newly installed or updated

Open

#1 430 ouverte le 15 janv. 2021

Voir sur GitHub
 (0 commentaires) (0 réactions) (1 assigné)Java (10 654 forks)batch import
help wanted

Métriques du dépôt

Stars
 (33 679 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

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!

Guide contributeur