Blankj/AndroidUtilCode

Detect if app is newly installed or updated

Open

#1.430 geöffnet am 15. Jan. 2021

Auf GitHub ansehen
 (0 Kommentare) (0 Reaktionen) (1 zugewiesene Person)Java (10.654 Forks)batch import
help wanted

Repository-Metriken

Stars
 (33.679 Stars)
PR-Merge-Metriken
 (Keine gemergten PRs in 30 T)

Beschreibung

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!

Contributor Guide