GOOGLE ADS

viernes, 15 de abril de 2022

Cómo obtener el tiempo de instalación de la aplicación desde Android

Intento algún método, pero no tengo éxito, ayúdame.


Solución del problema

En el nivel de API 9 (Gingerbread) y superior, está el campo PackageInfo.firstInstallTime, que contiene milisegundos desde la época:

packageManager.getPackageInfo(packageName, 0).firstInstallTime;

Tengo el siguiente código para usarlo si está disponible, y recurro al tiempo de modificación del apk:

// return install time from package manager, or apk file modification time,
// or null if not found
public Date getInstallTime(
PackageManager packageManager, String packageName) {
return firstNonNull(
installTimeFromPackageManager(packageManager, packageName),
apkUpdateTime(packageManager, packageName));
}
private Date apkUpdateTime(
PackageManager packageManager, String packageName) {
try {
ApplicationInfo info = packageManager.getApplicationInfo(packageName, 0);
File apkFile = new File(info.sourceDir);
return apkFile.exists()? new Date(apkFile.lastModified()): null;
} catch (NameNotFoundException e) {
return null; // package not found
}
}
private Date installTimeFromPackageManager(
PackageManager packageManager, String packageName) {
// API level 9 and above have the "firstInstallTime" field.
// Check for it with reflection and return if present.
try {
PackageInfo info = packageManager.getPackageInfo(packageName, 0);
Field field = PackageInfo.class.getField("firstInstallTime");
long timestamp = field.getLong(info);
return new Date(timestamp);
} catch (NameNotFoundException e) {
return null; // package not found
} catch (IllegalAccessException e) {
} catch (NoSuchFieldException e) {
} catch (IllegalArgumentException e) {
} catch (SecurityException e) {
}
// field wasn't found
return null;
}
private Date firstNonNull(Date... dates) {
for (Date date: dates)
if (date!= null)
return date;
return null;
}

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...