Tôi đang phát triển một ứng dụng Android, tôi muốn hiển thị Phiên bản của .apk
và ngày giờ tôi có thể hiển thị phiên bản ứng dụng của ứng dụng bằng cách sử dụng PackageInfo
và bây giờ tôi muốn hiển thị ngày tạo ứng dụng hoặc .apk
ngày tạo.Hiển thị ngày tạo ứng dụng Android.apk trong Ứng dụng
Trả lời
Phương pháp mà kiểm tra ngày sửa đổi cuối cùng của classes.dex, điều này có nghĩa thời gian cuối cùng khi mã của ứng dụng được xây dựng:
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){
}
Điều này không còn làm việc cho tôi nữa. Nó được sử dụng để, nhưng bây giờ nó không. Không biết từ khi nào. –
@DanielF http://stackoverflow.com/a/7608719/934646 Nó được thảo luận ở đó, tại sao mã này không hoạt động, tôi cũng đang tìm kiếm cùng một mã số –
Chính xác là khi nào mã này trả về? Thời gian nhà phát triển tạo tệp "classes.dex"? Có thể sử dụng nó để quyết định duy nhất liệu APK có đúng hay không và có đầu mối dễ dàng để xác minh rằng 2 APK giống hệt nhau không? –
tôi sử dụng chiến lược tương tự như Irshad Khan và con trỏ Null ngoại trừ tôi thích MANIFEST .MF. Cái này được tạo lại ngay cả khi bố cục được sửa đổi (không phải là trường hợp cho classes.dex). Tôi cũng buộc ngày phải được định dạng bằng GMT để tránh nhầm lẫn giữa thiết bị đầu cuối và máy chủ TZ (nếu cần phải so sánh, ví dụ: hãy kiểm tra phiên bản mới nhất).
Nó dẫn đến đoạn mã sau:
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 tôi sẽ kiểm tra xem nó ... –
Đối với độc giả mới:
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;
}
Điều này sử dụng thư mục APK đang ở. Không phải bản thân gói ứng dụng. Nhưng tôi đoán đó là ok kể từ khi thời gian sửa đổi của thư mục sẽ thay đổi khi apk thay đổi. – Yetti99
- 1. Hiển thị Lịch trong Ứng dụng Android
- 2. Hiển thị SVG trong ứng dụng PyGame
- 3. Chỉ thị góc không hiển thị trong ứng dụng ionic
- 4. Cách tạo ứng dụng android với tiện ích ứng dụng trong ứng dụng đơn
- 5. Tạo thông tin trong Ứng dụng iOS (ứng dụng ngày/giờ đã được tạo)
- 6. Hiển thị nội dung tex trong ứng dụng HTML5
- 7. Hiển thị văn bản thuần túy trong ứng dụng Android
- 8. hiển thị phông chữ mã vạch trong ứng dụng .net
- 9. Hiển thị tệp HTML trong Ứng dụng sáng bóng
- 10. Ứng dụng Android không hiển thị trong ngăn kéo ứng dụng
- 11. ứng dụng không được hiển thị trong ứng dụng gần đây liệt kê
- 12. Hiển thị Youtube trong ứng dụng Ionic 2
- 13. Cách tạo Chế độ ban đêm để hiển thị trong ứng dụng iPhone
- 14. Ngày mua ứng dụng iOS
- 15. Thanh tiêu đề ứng dụng Android không hiển thị khi thử nghiệm ứng dụng?
- 16. API để hiển thị biểu đồ trong ứng dụng web?
- 17. Hiển thị tiến trình trong ứng dụng dòng lệnh
- 18. Không gian trong tên ứng dụng iOS không hiển thị
- 19. Cách hiển thị video cục bộ trong ứng dụng PhoneGap?
- 20. Cách hiển thị hình ảnh trong ứng dụng Java
- 21. Hiển thị Camera Roll như trong ứng dụng Twitter?
- 22. ứng dụng không hiển thị trong Tap và Pay
- 23. Hiển thị hình ảnh trong ứng dụng AIR
- 24. Hiển thị bảng dữ liệu trong ứng dụng C# WPF
- 25. Ứng dụng sẽ không hiển thị trong quản trị Django
- 26. nhiều nút ứng dụng cách hiển thị jmx trong kubernetes?
- 27. Cách hiển thị thành phần từ ứng dụng đã cài đặt để hiển thị cho ứng dụng tức thì?
- 28. Hình ảnh hiển thị ứng dụng Android từ URL
- 29. Trình giả lập Android không hiển thị ứng dụng - nó chỉ hiển thị skin
- 30. Ngăn ứng dụng VBScript hiển thị Cửa sổ Console
Khi bạn thực hiện các ứng dụng chỉ cần đặt ngày hiện tại trong một hằng số, sau đó đọc nó trong ứng dụng. – Pietu1998
@ Pietu1998 Ok tôi có thể nhận được ngày hiện tại nhưng làm thế nào tôi có thể làm cho nó liên tục. –
Ý tôi là, bất cứ khi nào bạn tạo APK của mình, bạn chỉ cần đặt ngày trong một chuỗi ('chuỗi cuối cùng tĩnh cuối cùng 'không đổi) và yêu cầu ứng dụng của bạn sử dụng giá trị đó. Nếu bạn đặt nó trong một tập tin đủ đơn giản, bạn cũng có thể làm điều đó tự động, như [this one] (http://stackoverflow.com/questions/6758685/auto-increment-version-code-in-android-app). – Pietu1998