How to Open the Google Play Store Directly from Your Android Application

How to Open the Google Play Store Directly from Your Android Application

6 June 2024 Stephan Petzl Leave a comment Tech-Help

If you’re developing an Android application and you want to direct your users to your app’s page on the Google Play Store, you might have encountered the issue of the “Complete Action Using” dialog. This guide will help you navigate this problem and ensure that your users are taken directly to the Play Store.

Why the “Complete Action Using” Dialog Appears

The “Complete Action Using” dialog appears because multiple applications can handle the intent you are creating to open the Play Store. To bypass this dialog and open the Play Store directly, you will need to use a specific URI scheme.

Solution: Using the market:// URI Scheme

The easiest and most reliable way to open the Play Store directly is to use the market:// URI scheme. Here’s how you can do it:

Java Implementation


    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("https://play.google.com/store/apps/details?id=" + appPackageName)));
    }
    

Kotlin Implementation


    try {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))
    } catch (e: ActivityNotFoundException) {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$packageName")))
    }
    

Handling Edge Cases

In some instances, the Play Store might not be installed on the user’s device. In such cases, you can catch the ActivityNotFoundException and fall back to the web version of the Play Store:

Java Implementation


    final String appPackageName = getPackageName();
    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("https://play.google.com/store/apps/details?id=" + appPackageName)));
    }
    

Kotlin Implementation


    try {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName")))
    } catch (e: ActivityNotFoundException) {
        startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$packageName")))
    }
    

Conclusion

By using the market:// URI scheme and handling potential exceptions, you can ensure that your users are directed straight to your app’s Play Store page without encountering unnecessary dialogs.

Further Reading

How Repeato Can Help

For mobile developers, testing is a crucial part of the development process. Repeato, our no-code test automation tool for iOS and Android, can significantly streamline this process. With Repeato, you can quickly create, run, and maintain automated tests for your mobile applications. This allows you to focus on building a great product rather than spending time on test creation and maintenance. Additionally, Repeato’s intuitive interface enables non-technical colleagues or QA teams to handle test automation tasks, further enhancing productivity.

Learn more about how Repeato can support your development process on our Getting Started page.

Like this article? there’s more where that came from!