provo un metodo, ma non il successo, aiutatemi.Come ottenere il tempo di installazione dell'app da Android
28
A
risposta
52
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo("app.package.name", 0);
String appFile = appInfo.sourceDir;
long installed = new File(appFile).lastModified(); //Epoch Time
47
Nel livello API 9 (Gingerbread) e sopra, c'è il campo PackageInfo.firstInstallTime, tiene millisecondi dall'epoca:
packageManager.getPackageInfo(packageName, 0).firstInstallTime;
Ho il seguente codice di usarlo, se disponibile, e ricadere la data di modifica 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;
}
10
PackageInfo.firstInstallTime ti dà il tempo di installazione in "tempo Unix" (il tempo che ho n millisecondi dal "l'epoca", ad esempio 1 ° gennaio 1970 00:00:00 UTC). È possibile utilizzare java.util.Date o java.text.DateFormat per formattare questa volta.
private static final String TAG = "MyActivity";
...
packageName = ...
...
try {
PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
Date installTime = new Date(packageInfo.firstInstallTime);
Log.d(TAG, "Installed: " + installTime.toString());
Date updateTime = new Date(packageInfo.lastUpdateTime);
Log.d(TAG, "Updated: " + updateTime.toString());
}
catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
È inoltre possibile modificare il formato della data con java.text.SimpleDateFormat.
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String installTime = dateFormat.format(new Date(packageInfo.firstInstallTime));
Log.d(TAG, "Installed: " + installTime);
String updateTime = dateFormat.format(new Date(packageInfo.lastUpdateTime));
Log.d(TAG, "Updated: " + updateTime);
Problemi correlati
- 1. Come ottenere il tempo di avvio del sistema Android
- 2. Android - È possibile ottenere il referrer di installazione programmaticamente
- 3. Come ottenere il tempo in millisecondi in Android Shell?
- 4. Ottenere il tempo da una stringa di data
- 5. Android: Come ottenere il tempo da un TimePicker quando viene digitato in
- 6. qual è il tempo di installazione di CMake?
- 7. Tempo di installazione WIX per sviluppare un programma di installazione
- 8. come ottenere data da millisecondi in Android
- 9. Ottenere il tempo di compilazione JAR
- 10. Come ottenere il tempo di calcolo in ND
- 11. Android: come ottenere il nome del file di installazione in modo programmatico?
- 12. Come ottenere il tempo in Programmazione iOS
- 13. Android - Come ottenere un tempo di guida stimato da un luogo a un altro?
- 14. Programma di installazione del pacchetto Android: come ottenere "Apri" e "Fatto" e il risultato dell'attività entrambi?
- 15. spec GCC: come ottenere il percorso di installazione
- 16. RPM - Parametri del tempo di installazione
- 17. Timer di aumento: come ottenere il tempo quando ho bisogno?
- 18. Come ridurre il tempo di avvio nell'OS Android integrato.?
- 19. Android - Ottieni il tempo del widget cronometro
- 20. Come ottenere il tempo necessario all'avvio di un'applicazione?
- 21. Android: simula il lungo tempo di esecuzione
- 22. Come limitare il tempo di immissione per edittext in Android
- 23. Come ottenere foto reali da instagram dati in tempo reale?
- 24. Installazione di R su Android
- 25. Come migliorare il tempo di avvio di un'app per Android?
- 26. Problemi di installazione di Android
- 27. Come ottenere il testo selezionato da edittext in Android?
- 28. Qual è il miglior telefono Android da ottenere come sviluppatore
- 29. Come ottenere il tempo di scadenza del cookie
- 30. come ottenere il tempo di riproduzione corrente in video.js
Potresti aggiungere qualche centinaio di parole per spiegare a cosa ti riferisci? – CommonsWare
Immagino che voglia sapere quando è stata installata un'app. – Macarse
chi mi dice, come ottenere l'applicazione List installata, installata dall'utente, sistema nou. – jezz