2010-10-08 23 views
5

Tôi có một ứng dụng mà tôi muốn phân phối thông qua thị trường và cũng từ trang web của riêng tôi. Làm cách nào để tôi chỉ sử dụng một công cụ xây dựng và một khóa, kiểm tra xem ứng dụng đã được tải xuống từ thị trường hay chưa?android: Phát hiện nếu ứng dụng được tải xuống từ thị trường

This question được trả lời bằng cách có mã được ký bằng các khóa khác nhau, nhưng chúng tôi lý tưởng muốn một bản dựng duy nhất.

+0

As far như tôi biết điều này không thể được thực hiện trong một bản dựng. –

+0

Sergey - Gắn kết câu trả lời này xuống dưới dạng câu trả lời và tôi sẽ đánh dấu câu trả lời là chính xác. Từ những gì tôi có thể nói, bạn đúng trong điều này là không thể. – Martyn

Trả lời

1

Dường như điều này không thể thực hiện được.

+1

Lưu ý rằng nó không thể thực hiện được do các ràng buộc của OP. Nó có thể được thực hiện bằng cách ký hợp đồng xây dựng Market với một khóa duy nhất và so sánh tổng kiểm tra của khóa với giá trị được lưu trữ bên trong ứng dụng. Cá nhân, tôi thích tùy chỉnh bằng cách xây dựng kịch bản cho phát hành so với xây dựng gỡ lỗi. –

0

Tôi không biết điều này có thực sự tương quan hay không, nhưng nếu bạn có thể đọc /data/system/packages.xml, ứng dụng thị trường dường như có trình cài đặt = "com.google.android.feedback" trong khi các gói được đóng gói với xây dựng hệ thống và những người được biên dịch cục bộ thì không.

+1

Android Market gần đây có gói "com.android.vending". –

1

Trên Android 1.5 ứng dụng chỉ dành cho thiết bị cầm tay được cài đặt thông qua Market được liệt kê trong "Tải xuống của tôi" trong Market App, do đó, câu hỏi là nếu bạn có thể truy xuất danh sách đó trong thời gian chạy. Tôi không biết nếu nó giống với Android 2.x.

3

packageManager.getInstallerPackageName (context) Equals ("com.google.android.feedback")

http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstallerPackageName(java.lang.String)

+2

Đây có thể không phải là giải pháp khả thi, như [một số nhà phát triển đang báo cáo] (http://groups.google.com/group/android-developers/browse_thread/thread/d3c0ac0748e38132) rằng 'getInstallerPackageName()' không phải lúc nào cũng trả về cùng một giá trị (hoặc bất kỳ giá trị nào) khi ứng dụng được cài đặt thông qua Market. –

Các vấn đề liên quan