Как программно открыть приложение "Amazon" в playstore?

Я пытаюсь открыть приложение Amazon программным способом, и если оно не найдено в телефоне, пользователю предлагается установить его из Play Store, но проблема в том, что когда я пытаюсь открыть его в PlayStore, он показывает Item not found ошибка.

Вот мой код:

public void openApp(final String packageName, final String appName) {
        Intent intent = getBaseContext().getPackageManager().getLaunchIntentForPackage(packageName);
         if (intent != null) {
             startActivity(intent);
         } else {
             AlertDialog.Builder builder;
             builder = new AlertDialog.Builder(MainActivity.this);
             builder.setMessage(appName + " not found. Would you like to install " + appName + " from play store?")
                     .setPositiveButton("YES", new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {
                             try {
                                 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName)));
                             } catch (android.content.ActivityNotFoundException anfe) {
                                 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName)));
                             }
                         }
                     })
                     .setNegativeButton("NO", new DialogInterface.OnClickListener() {
                         public void onClick(DialogInterface dialog, int which) {

                         }
                     })
                     .show();
         }
    }

где packageName является in.amazon.mShop.android.shopping а также appName является Amazon,

Я получил имя пакета по ссылке приложения PlayStore, т. Е. https://play.google.com/store/apps/details?id=in.amazon.mShop.android.shopping&hl=en

Что здесь не так, и как я могу успешно открыть приложение Amazon на PlayStore, если не найден в устройстве?

1 ответ

 private boolean appInstalledOrNot(String uri) {
        PackageManager pm = getPackageManager();
        try {
            pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
            return true;
        } catch (PackageManager.NameNotFoundException e) {
        }

        return false;
    }

используйте этот метод, чтобы найти приложение установлено или нет, а затем

логическое isAppInstalled = appInstalledOrNot("com.check.application");

    if(isAppInstalled) {
        //This intent will help you to launch if the package is already installed
        Intent LaunchIntent = getPackageManager()
            .getLaunchIntentForPackage("com.check.application");
        startActivity(LaunchIntent);

        Log.i("Application is already installed.");       
    } else {
        // Do whatever we want to do if application not installed
        // For example, Redirect to play store

        Log.i("Application is not currently installed.");
    }
Другие вопросы по тегам