2011-03-15 9 views
49

¿Hay alguna forma de averiguar la "Fecha en que se instaló una aplicación" en un dispositivo Android?Obtener fecha de instalación de la aplicación en Android

Ha buscado exhaustivamente, pero no ha podido encontrar una respuesta relevante.

No se pudo encontrar nada con respecto a la fecha en que se instaló la aplicación a través de la documentación/código de PackageManager.

Muchas gracias. Mahim.

+2

Por favor, dígame, ¿Por qué necesita esto? ¿No es suficiente saber la primera fecha de lanzamiento? –

+1

Esto es según los requisitos del cliente para uno de los proyectos en los que estamos trabajando. – mahim

+0

@VladimirIvanov "¿Diga por qué necesita esto?" http://stackoverflow.com/questions/19764667/determine-date-or-version-that-app-was-purchased-from-google-play-store-equi –

Respuesta

95

o esta otra:

long installed = context 
    .getPackageManager() 
    .getPackageInfo(context.getPackag‌​eName(), 0) 
    .firstInstallTime 
; 
+0

Muchas gracias por su ayuda en el tema. – mahim

+0

agregue un bloque try-catch al código anterior, será lo suficientemente bueno –

+1

También podría obtener toda la otra "información del paquete" a través de este enlace, http://developer.android.com/reference/android/content /pm/PackageInfo.html – fedmich

22

Usar este código: (! API de nivel 9 hacia arriba)

PackageManager pm = context.getPackageManager(); 
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0); 
String appFile = appInfo.sourceDir; 
long installed = new File(appFile).lastModified(); 
+0

Muchas gracias Sunil, Pudimos seguir adelante con sus valiosas aportaciones arriba. – mahim

+23

El tiempo devuelto aquí cambiará cada vez que se actualice el paquete. – Jason

7

probar uno de estos

/** 
* The time at which the app was first installed. Units are as per currentTimeMillis(). 
* @param context 
* @return 
*/ 
public static long getAppFirstInstallTime(Context context){ 
    PackageInfo packageInfo; 
    try { 
    if(Build.VERSION.SDK_INT>8/*Build.VERSION_CODES.FROYO*/){ 
     packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); 
     return packageInfo.firstInstallTime; 
    }else{ 
     //firstinstalltime unsupported return last update time not first install time 
     ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0); 
     String sAppFile = appInfo.sourceDir; 
     return new File(sAppFile).lastModified(); 
    } 
    } catch (NameNotFoundException e) { 
    //should never happen 
    return 0; 
    } 
} 
-1

Este método devuelve el fecha de la instalación en formato de cadena como 12/25/2016 10:38:02:

private String getInstallDate() { 
     // get app installation date 

     PackageManager packageManager = getActivity().getPackageManager(); 
     long installTimeInMilliseconds; // install time is conveniently provided in milliseconds 

     Date installDate = null; 
     String installDateString = null; 

     try { 
      PackageInfo packageInfo = packageManager.getPackageInfo(getActivity().getPackageName(), 0); 
      installTimeInMilliseconds = packageInfo.firstInstallTime; 
      installDateString = MiscUtilities.getDate(installTimeInMilliseconds, "MM/dd/yyyy hh:mm:ss"); 
     } 
     catch (PackageManager.NameNotFoundException e) { 
      // an error occurred, so display the Unix epoch 
      installDate = new Date(0); 
      installDateString = installDate.toString(); 
     } 

     return installDateString; 
    } 
Cuestiones relacionadas