có thể lấy tên tệp trình cài đặt được lưu trữ trên/sdcard/ tải xuống /? Tôi muốn nhận được từ ứng dụng, tên tập tin apk đã cài đặt nó. Có một cách dễ dàng để làm điều đó đặc biệt với ứng dụng phi thị trường?Android: Cách lấy tên tệp trình cài đặt theo chương trình?
Trả lời
Cách tốt hơn chắc chắn là bao gồm chuỗi phiên bản trong tệp kê khai. Đây thực sự là phương pháp đáng tin cậy (và chuyên nghiệp) duy nhất. Android không lưu tên của tệp chứa APK ở bất kỳ đâu, vì vậy không có cách nào bạn có thể tải tệp đó. Về mặt lý thuyết, bạn có thể xây dựng một cái gì đó bằng cách sử dụng FileObserver
, đã xem tệp được tạo trong các thư mục nhất định và mỗi lần tệp được tạo bằng phần mở rộng .apk
bạn có thể mở tệp, trích xuất tệp kê khai, tìm tên gói của APK và sau đó lưu trữ tệp này cùng với tên tệp trong một số lưu trữ liên tục. Sau đó, khi bạn cần lấy thông tin về phiên bản, bạn có thể tìm trong bộ lưu trữ liên tục để lấy tên tệp khớp với tên gói bạn cần.
Tất nhiên, điều này sẽ chỉ hoạt động nếu ứng dụng của bạn được cài đặt trên thiết bị trước các tệp APK khác đã được tải xuống/cài đặt. Điều này sẽ không hoạt động để tìm ra tên tệp của ứng dụng của riêng bạn.
Hmm, tôi không chắc chắn những gì bạn có ý nghĩa bởi sdcard hoặc tải thư mục, nhưng bạn có thể có được con đường apk trong hệ thống thư mục/data:
dòng lệnh:
$ adb shell pm list packages | grep mk.trelloapp
package:mk.trelloapp
$ adb shell pm path mk.trelloapp
package:/data/app/mk.trelloapp-1/base.apk
hoặc từ bạn android ứng dụng mã số: (chỉ cần chạy quá trình)
Process exec = Runtime.getRuntime().exec("pm path mk.trelloapp");
exec.waitFor();
InputStream inputStream = exec.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String line = null;
while((line = br.readLine()) != null) {
builder.append(line);
}
String commandOutput = builder.toString();
mã ở trên chỉ đơn giản là sẽ cho bạn string chứa "gói: /data/app/mk.trelloapp-1/base.apk"
Khi bạn lấy đường dẫn/thư mục dữ liệu, bạn có thể tìm kiếm cùng một tệp tương tự trong các thư mục khác (giả sử nó không bị xóa), vì gói android được sao chép vào/thư mục dữ liệu trong khi instalation.
Điều này không hữu ích. OP muốn có thể lấy tên tệp ban đầu của tệp APK đã được tải xuống vì số phiên bản ứng dụng của anh được mã hóa như một phần của tên tệp đó. Đường dẫn APK tới '/ data' không bao gồm thông tin này vì nó chỉ sử dụng tên gói. –
- 1. Cài đặt Đường dẫn trình đăng nhập theo chương trình
- 2. Cách đặt điều khiển lấy nét tiếp theo của Android ActionBar theo chương trình
- 3. android - cài đặt LayoutParams theo lập trình
- 4. Cách đặt Android ở chế độ chờ theo chương trình?
- 5. Lấy tên chương trình Java
- 6. MATLAB gán "cài đặt xuất" -> "tải cài đặt từ" cho số liệu theo chương trình
- 7. Cách kiểm tra theo chương trình nếu ứng dụng được cài đặt hay không trong Android?
- 8. Cách đặt "Chạy chương trình này với tư cách quản trị viên" theo lập trình
- 9. Cài đặt chương trình Python trên Linux
- 10. Cài đặt trong Tệp Chương trình so với Appdata
- 11. Cách lấy tên tệp đầu vào trong trình ánh xạ trong chương trình Hadoop?
- 12. Android đặt trọng số cho TextView theo chương trình
- 13. Cài đặt trình điều khiển theo cách lập trình sử dụng tệp INF C++
- 14. Có thể gỡ bỏ cài đặt gói theo chương trình trong Android
- 15. Thay đổi cài đặt độ phân giải máy ảnh theo chương trình trong android
- 16. Văn bản nút cài đặt theo lập trình Android
- 17. Làm cách nào để cài đặt chương trình Java?
- 18. Cách đặt trọng lực theo chương trình trong relativelayout
- 19. Office Addin - được nhập theo chương trình * tệp cài đặt .exportedUI
- 20. Android chụp màn hình theo chương trình
- 21. Cách tìm tên JJI tra cứu EJB theo chương trình?
- 22. Cách đọc thư thoại theo chương trình trong Android
- 23. Cách thêm thuộc tính theo chương trình
- 24. Làm cách nào để đặt kiểu textView theo chương trình?
- 25. Làm cách nào để lấy tên chương trình trong Racket?
- 26. Cách cài đặt chứng chỉ theo chương trình bằng cách sử dụng C#
- 27. Cách đặt hình ảnh làm hình nền theo chương trình?
- 28. Android: thay đổi chương trình nhãn ứng dụng theo chương trình?
- 29. đặt tên chương trình cho typedefs
- 30. cách làm cho chương trình có thể cài đặt
ý bạn là "tên tệp trình cài đặt" là gì? Tên của gói ứng dụng? Nếu có, tại sao bạn muốn nó? Vui lòng thêm các chi tiết khác. –
Có, tôi muốn nhận tên của apk được lưu trữ trên thẻ sd. Tôi đã tạo tệp APK và lưu trữ nó trên máy chủ, khi ai đó muốn tải xuống, máy chủ tạo tệp có tên duy nhất, ví dụ: "application00086.apk". Câu hỏi đặt ra là: cách lấy tên tệp duy nhất này từ ứng dụng của tôi sau khi cài đặt được lưu trữ trong thư mục:/data/app/Tôi tìm thấy phương thức thú vị: getInstallerPackageName nhưng phương thức này chỉ trả về tên gói cài đặt và chỉ cho các ứng dụng được phân phối trên Android Market, muốn tải xuống tệp trình cài đặt NAME và không muốn phân phối ứng dụng của tôi trong Market. – Wolfie
@Wolfie: Tôi phải đối mặt với cùng một vấn đề với bạn. Bạn đã có giải pháp cho việc này chưa. Cảm ơn nhiều ! – hoang8f