88

Tôi có liên kết của các ứng dụng khác trong ứng dụng mới nhất của mình và tôi mở chúng theo cách đó.

Uri uri = Uri.parse("url");
Intent intent = new Intent (Intent.ACTION_VIEW, uri); 
startActivity(intent);

mã này mở phiên bản trình duyệt của cửa hàng google play.

Khi cố gắng mở từ điện thoại của tôi, điện thoại sẽ nhắc nếu tôi muốn sử dụng trình duyệt hoặc google play và nếu tôi chọn cái thứ hai, nó sẽ mở phiên bản di động của cửa hàng google play.

Bạn có thể cho tôi biết làm thế nào điều này có thể xảy ra cùng một lúc? Ý tôi là không hỏi tôi mà trực tiếp mở phiên bản di động của google play, phiên bản mà tôi thấy trong khi mở trực tiếp từ điện thoại.

|
  • 1

    Tôi ước rằng đoạn thứ hai đến đoạn cuối là đúng với tôi. Sử dụng liên kết http được tìm thấy ở đây: developer.android.com/distribution/googleplay/promote/ , không nhắc người dùng chọn ứng dụng hoặc trình duyệt. Nó luôn giả định trình duyệt. Thật không may, tôi cũng không thể sử dụng market://giao thức. Bất cứ ai khác nhìn thấy hành vi này?

    – Huỳnh Kim Anh 16:24:37 28/06/2013
264

Bạn sẽ muốn sử dụng marketgiao thức được chỉ định :

final String appPackageName = "com.example"; // Can also use getPackageName(), as below
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));

Hãy nhớ rằng, điều này sẽ sụp đổ trên bất kỳ thiết bị nào chưa cài đặt Market (ví dụ như trình giả lập). Do đó, tôi sẽ đề xuất một cái gì đó như:

final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)));
}

Trong khi sử dụng getPackageName()từ Contexthoặc phân lớp của chúng để thống nhất (cảm ơn @cprcrack !). Bạn có thể tìm thêm về Ý định thị trường tại đây: link .

|
  • 1

    Mở phần sau trong trình duyệt không mở Google Play: market: // chi tiết? Id = pandora

    – Lý Diễm Trang 19:04:02 13/01/2013
  • 1

    ID là tên gói, không phải tên ứng dụng. Hãy thử market://details?id=com.PandoraTV(giả sử đây là ứng dụng bạn muốn).

    – Hoàng Diễm Trang 19:32:43 13/01/2013
  • 1

    Câu trả lời này là về việc sử dụng market://tiền tố từ ứng dụng của riêng bạn chứ không phải từ một trang web thông qua trình duyệt. Tôi có thể chứng thực chức năng của nó (trên các phiên bản 2.3, 3.x, 4.0, 4.1 và 4.2) và nó hoạt động với trình duyệt chứng khoán, Chrome Beta 25 và Chrome 18.

    – Hoàng Thi 20:30:20 14/01/2013
  • 1

    Có, Chrome là một ứng dụng, nhưng điều đó sẽ yêu cầu các nhà sản xuất của nó [Google] sử dụng mã này, chứ không phải người [bạn] tạo trang web. Như hiện tại, mã này là để giúp những người đang cấu trúc các liên kết cụ thể từ ứng dụng của họ.

    – Lý Thuận Anh 17:55:17 15/01/2013
  • 1

    Bạn có thể sử dụng getPackageName()để tự động truy xuất id ứng dụng.

    – Tạ Minh Hỷ 23:37:00 01/05/2013
6

Mã bên dưới có thể giúp bạn hiển thị liên kết ứng dụng của google play đau trong phiên bản di động.

Đối với liên kết ứng dụng:

Uri uri = Uri.parse("market://details?id=" + mContext.getPackageName());
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);

  try {
        startActivity(myAppLinkToMarket);

      } catch (ActivityNotFoundException e) {

        //the device hasn't installed Google Play
        Toast.makeText(Setting.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show();
              }

Đối với liên kết Nhà phát triển:

Uri uri = Uri.parse("market://search?q=pub:" + YourDeveloperName);
Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);

            try {

                startActivity(myAppLinkToMarket);

            } catch (ActivityNotFoundException e) {

                //the device hasn't installed Google Play
                Toast.makeText(Settings.this, "You don't have Google Play installed", Toast.LENGTH_LONG).show();

            } 
|
3

Bạn có thể sử dụng thư viện Android Intents để mở trang ứng dụng của mình tại Google Play như thế:

Intent intent = IntentUtils.openPlayStore(getApplicationContext());
startActivity(intent);
|
1

Bạn có thể kiểm tra xem ứng dụng Cửa hàng Google Play đã được cài đặt chưa và nếu gặp trường hợp này, bạn có thể sử dụng giao thức "market: //" .

final String my_package_name = "........."  // <- HERE YOUR PACKAGE NAME!!
String url = "";

try {
    //Check whether Google Play store is installed or not:
    this.getPackageManager().getPackageInfo("com.android.vending", 0);

    url = "market://details?id=" + my_package_name;
} catch ( final Exception e ) {
    url = "https://play.google.com/store/apps/details?id=" + my_package_name;
}


//Open the app page in Google Play store:
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);
|
0

Mở trang ứng dụng trên Google Play:

Intent intent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("market://details?id=" + context.getPackageName()));
startActivity(intent);
|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.