2012-06-25 32 views
5

Được biết, chúng tôi có thể gửi ý định như được mô tả trong liên kết sau và sau đó chuyển hướng người dùng đến Google Play.Chuyển hướng người dùng đến App Store trong Android

Uri marketUri = Uri.parse("market://details?id=" + packageName); 
Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri); 
startActivity(marketIntent); 

Nhưng vấn đề là tất cả cửa hàng ứng dụng, đặc biệt là Amazon App Store (trong Kindle), đều có thể xử lý mục đích này?
Tôi biết rằng URI sau phải chuyển hướng người dùng đến cửa hàng ứng dụng amazon:

http://www.amazon.com/gp/mas/dl/android?p=package 

Nhưng, Tôi không muốn có hai tập tin nhị phân, một cho Android thông thường và một cho Amazon.

+0

Bạn không thể phát hiện thiết bị và sử dụng URL tùy thuộc vào thiết bị? –

+0

Có, nhưng tôi nghĩ đó không phải là giải pháp tốt. Trên thực tế, không chỉ có Google Play và Amazon App Store, có nhiều cửa hàng ứng dụng ở Trung Quốc Điện thoại/máy tính bảng Android. Và tôi không thể xử lý tất cả các thiết bị ... Btw, tôi biết rằng tôi có thể nhận được nhà sản xuất nhưng tôi không biết chính xác chuỗi được trả về từ thiết bị amazon vì tôi không có thiết bị trong tay – Bear

+2

Cách tìm thiết bị -> http://stackoverflow.com/questions/8309624/detect-app-is-running-on-kindle-fire –

Trả lời

3

Không có phương pháp chung, điều cần làm ở đây là đặt một loạt các cờ trong mã của bạn.

do đó bạn sẽ có cái gì đó như

boolean AMAZON_APK=true; 
boolean ANDROID_APK =false; 
.... 

Sau đó, bạn sẽ thiết lập các giá trị thích hợp khi bạn muốn xuất bản tới amazon và khi bạn muốn xuất bản Android Play. Trong mã của bạn trước khi tung ra thị trường, bạn sẽ kiểm tra các cờ với một loạt các câu lệnh if và khởi chạy ý định thích hợp tùy thuộc vào những gì mà thị trường cụ thể hỗ trợ. Đây không phải là một vấn đề lớn vì bạn chỉ phải thay đổi một vài biến.

if(AMAZON_APK) 
    //launch amazon intent 
if(ANDROID_APK) 
    //launch android market intent 
.... 

Bạn có thể xem ví dụ hoàn chỉnh hơn tại đây. How can I do an Amazon App Store search using an Intent and filter it by developer name? cũng nếu một số thị trường không hỗ trợ bất kỳ thứ gì như ý định thị trường, bạn có thể khởi chạy liên kết đến trang web trên thiết bị di động và hướng người dùng đến ứng dụng của bạn từ đó.

+0

Như tôi đã đề cập trước đây, tôi không muốn có hai tệp nhị phân riêng biệt. Điều tôi muốn biết là thiết bị amazon có thể nhận ra ý định tôi đã đề cập ở trên không. Tôi biết rằng nó bị cấm từ cửa hàng ứng dụng amazon, nhưng tôi không quan tâm vì tôi không có ý định tải lên kho ứng dụng của họ. Tôi chỉ muốn chắc chắn rằng nó hoạt động nếu nó thực sự trong thiết bị Amazon – Bear

+0

Phải, trong khi tôi không thể xác nhận những gì kindle với mục đích thị trường, một cách để làm điều này mà không cần phải phát hành riêng biệt nhị phân là sử dụng PackageManager để xem cửa hàng Play là cài đặt và sau đó khởi động ý định Android, nếu không kiểm tra nếu Amazon được cài đặt, nếu cả hai không có thì sử dụng trang web hoặc bất kỳ "cửa hàng" ứng dụng khác mà bạn biết. Xem phần này bằng cách sử dụng trình quản lý gói để kiểm tra các ứng dụng đã cài đặt http://stackoverflow.com/q/6711295/329034 – mbwasi

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