buka tautan google play store di versi seluler android

88

Saya memiliki tautan aplikasi saya yang lain di aplikasi terbaru saya, dan saya membukanya dengan cara itu.

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

Kode ini membuka versi browser google play store.

Ketika mencoba untuk membuka dari ponsel saya, ponsel meminta jika saya ingin menggunakan browser atau google play dan jika saya memilih yang kedua itu membuka versi mobile dari google play store.

Bisakah Anda memberi tahu saya bagaimana ini bisa terjadi sekaligus? Maksud saya tidak bertanya kepada saya tetapi langsung membuka versi seluler google play, yang saya lihat saat membukanya langsung dari ponsel.

hantu pengendara
sumber
1
Saya berharap paragraf kedua hingga terakhir benar bagi saya. Menggunakan tautan http yang terdapat di sini: developer.android.com/distribute/googleplay/promote/… tidak meminta pengguna untuk memilih aplikasi atau browser. Itu selalu mengasumsikan browser. Sayangnya, saya juga tidak dapat menggunakan market://protokolnya. Adakah orang lain yang melihat perilaku ini?
SilithCrowe

Jawaban:

265

Anda akan ingin menggunakan marketprotokol yang ditentukan :

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

Perlu diingat, ini akan mogok di perangkat apa pun yang tidak menginstal Market (emulator, misalnya). Oleh karena itu, saya menyarankan sesuatu seperti:

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)));
}

Saat menggunakan getPackageName()dari Contextatau subkelasnya untuk konsistensi (terima kasih @cprcrack !). Anda dapat menemukan lebih banyak tentang Maksud Pasar di sini: tautan .

Eric
sumber
Membuka berikut ini di browser tidak membuka Google Play: market: // details? Id = pandora
IgorGanapolsky
1
ID adalah nama paket, bukan nama aplikasi. Coba market://details?id=com.PandoraTV(anggap ini adalah aplikasi yang Anda inginkan).
Eric
9
Jawaban ini tentang menggunakan market://awalan dari aplikasi Anda sendiri, bukan dari situs web melalui browser. Saya dapat membuktikan fungsinya (pada versi 2.3, 3.x, 4.0, 4.1, dan 4.2) dan berfungsi dengan browser stok, Chrome Beta 25, dan Chrome 18.
Eric
1
Ya, Chrome adalah sebuah aplikasi, tetapi pembuatnya [Google] harus menggunakan kode ini, bukan orang yang [Anda] yang membuat situs web tersebut. Seperti berdiri, kode ini untuk membantu orang yang menyusun tautan secara khusus dari aplikasi mereka.
Eric
2
Anda dapat menggunakan getPackageName()untuk mengambil id aplikasi secara otomatis.
cprcrack
6

Kode di bawah ini dapat membantu Anda untuk menampilkan tautan aplikasi google play sakit di versi seluler.

Untuk tautan Aplikasi:

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();
              }

Untuk tautan Pengembang:

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();

            } 
Chirag Ghori
sumber
3

Anda dapat menggunakan pustaka Maksud Android untuk membuka halaman aplikasi Anda di Google Play seperti itu:

Intent intent = IntentUtils.openPlayStore(getApplicationContext());
startActivity(intent);
Dmitriy Tarasov
sumber
2
Perhatikan bahwa jawaban link-only tidak disarankan, jawaban SO harus menjadi titik akhir dari pencarian solusi (vs. referensi lain yang berhenti, yang cenderung menjadi basi seiring waktu). Harap pertimbangkan untuk menambahkan sinopsis yang berdiri sendiri di sini, dengan menyimpan tautan sebagai referensi.
kleopatra
4
Akan sangat membantu untuk memasukkan penafian bahwa ini adalah pustaka Anda dan fungsinya diterapkan hampir sama dengan jawaban yang diterima.
ta.speot. Adalah
1

Anda dapat memeriksa apakah aplikasi Google Play Store telah diinstal dan, jika demikian, Anda dapat menggunakan protokol "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);
Paolo Rovelli
sumber
0

Buka halaman aplikasi di Google Play:

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

sumber