tôi thử một số phương pháp, nhưng không thành công, giúp tôi.Cách nhận thời gian cài đặt ứng dụng từ android
28
A
Trả lời
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
Trong mức API 9 (Gingerbread) trở lên, có lĩnh vực PackageInfo.firstInstallTime, giữ mili giây kể từ khi kỷ nguyên:
packageManager.getPackageInfo(packageName, 0).firstInstallTime;
Tôi có đoạn code sau đây để sử dụng nó nếu có, và rơi trở lại thời gian sửa đổi 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 mang đến cho bạn cài đặt thời gian trong "lần Unix" (thời gian i n mili giây kể từ "kỷ nguyên", tức là ngày 1 tháng 1 năm 1970 00:00:00 UTC). Bạn có thể sử dụng java.util.Date hoặc java.text.DateFormat để định dạng thời gian này.
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();
}
Bạn cũng có thể thay đổi định dạng ngày bằng 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);
Các vấn đề liên quan
- 1. Cách nhận tên ứng dụng đã cài đặt trong Android?
- 2. Thay đổi Cài đặt ứng dụng trong thời gian chạy
- 3. Nhận sự kiện gỡ cài đặt ứng dụng trong android
- 4. Cách nhận giá trị từ các cài đặt ứng dụng?
- 5. RPM - Cài đặt thông số thời gian
- 6. Android: BroadcastReceiver khi cài đặt/gỡ cài đặt ứng dụng
- 7. Cách đặt cài đặt khóa recaptcha tại thời gian chạy
- 8. Ứng dụng Android tự gỡ cài đặt
- 9. Android - Cách chặn ý định 'Cài đặt ứng dụng'
- 10. Nhận liên kết giới thiệu sau khi cài đặt ứng dụng từ Android Market
- 11. Làm cách nào để đặt cài đặt ứng dụng tại thời điểm cài đặt (thông qua lớp trình cài đặt)
- 12. android: Cách tạo điều hướng cài đặt như ứng dụng cài đặt gốc
- 13. Đặt thời gian chờ trên URL.openStream() Android
- 14. Lấy danh sách các ứng dụng Android đã cài đặt
- 15. Cài đặt thời gian hệ thống của điện thoại ROOTED
- 16. Cài đặt thời gian chờ của ứng dụng khách jax-ws
- 17. Android - không thể gỡ cài đặt ứng dụng
- 18. Android - Cách đếm thời gian trong một thời gian dài
- 19. Cài đặt ứng dụng
- 20. Cài đặt ứng dụng Ngôn ngữ trong Tùy chọn Android
- 21. Sử dụng Cài đặt Ứng dụng và cài đặt mặc định từ app.config
- 22. Nhận thời gian hoạt động của ứng dụng
- 23. Thời gian chờ ReportViewer mặc dù cài đặt hết thời gian
- 24. Tập lệnh cài đặt ứng dụng Django - Cách thêm ứng dụng vào cài đặt INSTALLED_APPS?
- 25. Cài đặt ứng dụng của winform: không thể lưu cài đặt ứng dụng đã được thêm vào trong thời gian chạy
- 26. Cách ứng dụng android có thể phát hiện cửa hàng đã cài đặt ứng dụng nào?
- 27. Android nhận thời gian UTC hiện tại
- 28. Cài đặt ClickOnce xuất bản ứng dụng nhận thức DPI
- 29. Cài đặt thời gian chờ trên jQuery được viết tắt
- 30. Thời gian Android và Java Thời gian
Bạn có thể thêm vài trăm từ giải thích những gì bạn đang đề cập đến không? – CommonsWare
Tôi đoán anh ấy muốn biết khi nào ứng dụng được cài đặt. – Macarse
người cho tôi biết, cách cài đặt ứng dụng Danh sách, ứng dụng được cài đặt bởi người dùng, hệ thống nou. – jezz