Enlace "Calificar esta aplicación" en la aplicación de la tienda Google Play en el teléfono
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.
- ¿Qué código tengo que escribir para crear el enlace
market://
ohttp://
abierto en la aplicación de la tienda Google Play en el teléfono? - ¿Dónde pones el código?
- ¿Alguien tiene una implementación de muestra de esto?
- ¿Tiene que especificar la pantalla donde se colocará el enlace
market://
o y cuál es el mejor para usar, o ?http://
market://
http://
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();
}
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 Activity
desea llamarlo.
Cuando el usuario hace clic en un botón para calificar la aplicación, simplemente llama a la rateApp()
función.
Siempre uso este código:
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=PackageName")));