Enlace "Calificar esta aplicación" en la aplicación de la tienda Google Play en el teléfono

Resuelto Adreno asked hace 54 años • 21 respuestas

Me gustaría colocar un enlace "Calificar esta aplicación" en una aplicación de Android para abrir la lista de aplicaciones en la aplicación de la tienda Google Play del usuario en su teléfono.

  1. ¿Qué código tengo que escribir para crear el enlace market://o http://abierto en la aplicación de la tienda Google Play en el teléfono?
  2. ¿Dónde pones el código?
  3. ¿Alguien tiene una implementación de muestra de esto?
  4. ¿Tiene que especificar la pantalla donde se colocará el enlace market://o y cuál es el mejor para usar, o ?http://market://http://
Adreno avatar Jan 01 '70 08:01 Adreno
Aceptado

Abro Play Store desde mi App con el siguiente código:

            val uri: Uri = Uri.parse("market://details?id=$packageName")
            val goToMarket = Intent(Intent.ACTION_VIEW, uri)
            // To count with Play market backstack, After pressing back button, 
            // to taken back to our application, we need to add following flags to intent. 
            goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY or
                    Intent.FLAG_ACTIVITY_NEW_DOCUMENT or
                    Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
            try {
                startActivity(goToMarket)
            } catch (e: ActivityNotFoundException) {
                startActivity(Intent(Intent.ACTION_VIEW,
                        Uri.parse("http://play.google.com/store/apps/details?id=$packageName")))
            }

Opción 2: es usar resolveActivity en lugar de try..catch

if (sendIntent.resolveActivity(getPackageManager()) != null) {
     startActivity(chooser);
} else {
    openUrl();
}
MRD avatar May 30 '2012 13:05 MRD

Aquí hay un código funcional y actualizado :)

/*
* Start with rating the app
* Determine if the Play Store is installed on the device
*
* */
public void rateApp()
{
    try
    {
        Intent rateIntent = rateIntentForUrl("market://details");
        startActivity(rateIntent);
    }
    catch (ActivityNotFoundException e)
    {
        Intent rateIntent = rateIntentForUrl("https://play.google.com/store/apps/details");
        startActivity(rateIntent);
    }
}

private Intent rateIntentForUrl(String url)
{
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("%s?id=%s", url, getPackageName())));
    int flags = Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
    if (Build.VERSION.SDK_INT >= 21)
    {
        flags |= Intent.FLAG_ACTIVITY_NEW_DOCUMENT;
    }
    else
    {
        //noinspection deprecation
        flags |= Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET;
    }
    intent.addFlags(flags);
    return intent;
}

Coloque el código desde donde Activitydesea llamarlo.
Cuando el usuario hace clic en un botón para calificar la aplicación, simplemente llama a la rateApp()función.

Dombi Bence avatar Sep 22 '2015 15:09 Dombi Bence

Siempre uso este código:

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=PackageName")));
Cabezas avatar Apr 26 '2015 12:04 Cabezas