Sto sviluppando un'applicazione Android, voglio visualizzare la versione di .apk
e ora posso visualizzare la versione dell'app dell'applicazione utilizzando PackageInfo
e ora voglio visualizzare la data di creazione dell'app o la data di creazione .apk
.Visualizzazione della data di creazione dell'applicazione Android.apk nell'applicazione
risposta
metodo che controlla la data di ultima modifica di classes.dex, questo significa che l'ultima volta in cui è stato costruito il codice della tua app:
try{
ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0);
ZipFile zf = new ZipFile(ai.sourceDir);
ZipEntry ze = zf.getEntry("classes.dex");
long time = ze.getTime();
String s = SimpleDateFormat.getInstance().format(new java.util.Date(time));
}catch(Exception e){
}
Questo non funziona più per me. Era solito, ma ora non è così. Non so da quando. –
@DanielF http://stackoverflow.com/a/7608719/934646 Si è discusso lì, perché questo codice non funziona, sto anche cercando lo stesso –
Qual è esattamente il tempo che questo codice restituisce? Il tempo in cui lo sviluppatore ha creato il file "classes.dex"? Può essere utilizzato per decidere in modo univoco se l'APK è quello corretto e avere un indizio facile per verificare che 2 APK siano identici? –
Io uso la stessa strategia di Irshad Khan e puntatore nullo, tranne io preferisco il manifesto File .MF. Questo viene rigenerato anche se viene modificato un layout (che non è il caso di classes.dex). Forzo anche la data da formulare in GMT per evitare confusione tra terminale e server TZ (se è necessario effettuare un confronto, es: controlla l'ultima versione).
Esso risulta nel codice seguente:
try{
ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0);
ZipFile zf = new ZipFile(ai.sourceDir);
ZipEntry ze = zf.getEntry("META-INF/MANIFEST.MF");
long time = ze.getTime();
SimpleDateFormat formatter = (SimpleDateFormat) SimpleDateFormat.getInstance();
formatter.setTimeZone(TimeZone.getTimeZone("gmt"));
String s = formatter.format(new java.util.Date(time));
zf.close();
}catch(Exception e){
}
ok lo controllerò ... –
Per i nuovi lettori:
public static String getAppTimeStamp(Context context) {
String timeStamp = "";
try {
ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), 0);
String appFile = appInfo.sourceDir;
long time = new File(appFile).lastModified();
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
timeStamp = formatter.format(time);
} catch (Exception e) {
}
return timeStamp;
}
Questo usa la directory in cui si trova l'APK. Non l'apk stesso. Ma suppongo che sia ok dato che il tempo di modifica della cartella cambierà quando l'apk cambia. – Yetti99
- 1. yii2: formattazione della data per la visualizzazione
- 2. Formato di visualizzazione data Datatables.net
- 3. Creazione di una visualizzazione Web a livello di programmazione e visualizzazione di NSStrings all'interno della vista
- 4. CloudKit: ordina i risultati della query per data di creazione
- 5. Creazione della chiave univoca nella tabella MySQL riferita alla data
- 6. Data di creazione del file in Android
- 7. Android - creazione di una visualizzazione progress progressbarBar
- 8. Genera nome file con data di creazione
- 9. Ordina file per data di creazione - iOS
- 10. Creazione di data/ora in C#
- 11. Objective-c: data di creazione del file
- 12. File data di creazione in C#
- 13. ASP.NET MVC data la visualizzazione senza tempo
- 14. Creazione di un'interfaccia modello/visualizzazione con cursori usando PyQt
- 15. Visualizzazione della rete JavaScript?
- 16. Modifica file di data di creazione su Windows con PHP
- 17. visualizzazione di visualizzazione nella parte superiore della barra delle azioni
- 18. Visualizzazione data gg/mm/aaaa in vb.net
- 19. Creazione di una visualizzazione di albero in modo ricorsivo
- 20. E 'possibile la creazione di visualizzazione per query di inserimento
- 21. Creazione di una pagina di visualizzazione `Utenti` utilizzando Devise
- 22. Creazione di un monitor virtuale/dispositivo di visualizzazione virtuale
- 23. Come ottenere l'inizio del mese della data e la data di fine della data?
- 24. Modifica del formato della data nei modelli di visualizzazione per SharePoint 2013
- 25. sas7bdat formato della data formato della data R
- 26. Disabilita visualizzazione della finestra della console
- 27. Swift Core Data Batch Aggiornamento della creazione di record duplicati anziché sovrascrittura
- 28. Creazione di una mail con allegato in Outlook e visualizzazione
- 29. Creazione del modello di visualizzazione per ogni UITableViewCell
- 30. Determinare la data di creazione del file in Java
Quando si effettua l'applicazione appena messo la data corrente in una costante, poi leggerlo nell'applicazione. – Pietu1998
@ Pietu1998 Ok posso ottenere la data corrente ma come posso renderla costante. –
Voglio dire, ogni volta che costruisci il tuo APK, metti da solo la data in una costante ('stringa finale statica pubblica '), e chiedi alla tua applicazione di usare quel valore. Se lo metti in un file abbastanza semplice puoi farlo anche automaticamente, come [questo] (http://stackoverflow.com/questions/6758685/auto-increment-version-code-in-android-app). – Pietu1998