Tôi có ứng dụng trong Google Play, Amazon, Samsung Apps và tôi dự định tải lên các cửa hàng khác. Tôi không muốn lập bản dựng riêng cho mỗi cửa hàng. Có cách nào để phát hiện ứng dụng đã cài đặt cửa hàng nào nếu cùng một ứng dụng được gửi đến các cửa hàng khác nhau không?Cách ứng dụng android có thể phát hiện cửa hàng đã cài đặt ứng dụng nào?
Trả lời
Bạn sẽ phải mở rộng này cho mỗi cửa hàng bổ sung, nhưng điều này sẽ giúp bạn bắt đầu
if (PackageManager.getInstallerPackageName().equals("com.android.vending")
{
//do google things
}
else if (PackageManager.getInstallerPackageName().equals("com.amazon.venezia")
{
//do amazon things
}
Không trừ khi bạn xây dựng riêng biệt. Nhưng với một kịch bản thiết lập maven/ant tốt bạn có thể tự động dễ dàng quá trình này.
tôi phát hiện cài đặt như thế này bên trong MainActivity:
//is installed via amazon, google?
String installerId = null;
try {
installerId = this.getPackageManager().getInstallerPackageName(this.getPackageName());
} catch (Exception e) {
//just in case...
}
if ("com.amazon.venezia".equals(installerId)) {
// amazon
} else if ("com.android.vending".equals(installerId)) {
// google
} else {
// others & unknown ones
}
Tôi đã thử nghiệm này trong ứng dụng cuối cùng của tôi và ứng dụng đã gửi ứng dụng trong trò chơi googe, cửa hàng amazon và cửa hàng slideme.org
Cập nhật: xem Đôi khi có tên gói trình cài đặt com.google.android.feedback dường như có liên quan đến cửa hàng google, mặc dù tôi đã thấy trong phân tích google của ứng dụng thử nghiệm của mình rằng com.android.vending là cho đến nay thường xuyên hơn. Vì vậy, nếu bạn muốn làm cho điều này thậm chí chính xác hơn, bạn cũng nên xử lý gói cài đặt này. Cũng lưu ý rằng một số thị trường (như slideme.org) đơn giản dường như không đặt id trình cài đặt gói nào cả.
- 1. Phát hiện xem ứng dụng đã được gỡ cài đặt
- 2. Cách nhận tên ứng dụng đã cài đặt trong Android?
- 3. Phát hiện cài đặt AppStore của ứng dụng iOS
- 4. Lấy danh sách các ứng dụng Android đã cài đặt
- 5. Cách tải ứng dụng đã cài đặt trong Android và không có ứng dụng hệ thống nào?
- 6. Phát hiện từ trình duyệt nếu một ứng dụng cụ thể được cài đặt trong Android
- 7. Phát hiện một ứng dụng được cài đặt hay chưa?
- 8. Tôi có thể cài đặt "cửa hàng ứng dụng" trong trình mô phỏng IOS không?
- 9. Phát hiện xem Cửa hàng ứng dụng Windows 8 có màn hình cảm ứng hay không
- 10. Cách đặt tên cho biểu tượng cửa hàng ứng dụng?
- 11. Android: BroadcastReceiver khi cài đặt/gỡ cài đặt ứng dụng
- 12. Ứng dụng Android tự gỡ cài đặt
- 13. Cài đặt ứng dụng
- 14. Đảm bảo ứng dụng Android đã được cài đặt từ Play-Store
- 15. Trước khi ký ứng dụng mac và tải ứng dụng lên cửa hàng ứng dụng
- 16. Thay đổi tên trên ứng dụng đã có trong cửa hàng ứng dụng?
- 17. Thay đổi tên ứng dụng trong cửa hàng của một ứng dụng iOS đã phát hành/có sẵn
- 18. Android - không thể gỡ cài đặt ứng dụng
- 19. Android - Cách chặn ý định 'Cài đặt ứng dụng'
- 20. Làm cách nào để phát hiện xem ứng dụng android có bị dừng hoặc gỡ cài đặt không?
- 21. Không thể xác thực và gửi Ứng dụng tới Cửa hàng ứng dụng Mac
- 22. WIX: Cách phát hiện xem ứng dụng của bên thứ ba có được cài đặt không?
- 23. Làm cách nào để Chrome tải "ứng dụng cửa hàng"?
- 24. Tôi làm cách nào để có thể hỗ trợ ứng dụng Android của mình cho nhiều cửa hàng Android?
- 25. cửa hàng ứng dụng amazon và cấp phép android LVL
- 26. Phát hiện xem ứng dụng có phải là bản Beta trong Cửa hàng Play
- 27. Làm cách nào để ứng dụng Delphi phát hiện cài đặt proxy mạng của PC Windows?
- 28. 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?
- 29. Phát hiện ứng dụng treo
- 30. django cài đặt cụ thể ứng dụng
Tôi KHÔNG thấy điều này đáng tin cậy trong quá khứ. Tôi đã thử nghiệm việc gửi getInstallerPackageName khi cài đặt lên máy chủ web của tôi với một ứng dụng phổ biến được tải lên 6 thị trường và 41% thậm chí không được đặt – jamesc