android rate

Enfoque de Android para "Calificar mi aplicación"



rate (9)

¿Existe un enfoque de mejores prácticas para hacer que los usuarios de Android califiquen su aplicación? Teniendo en cuenta que podrían adquirirlo en Amazon.com o Google Marketplace, ¿cuál es la mejor manera de manejar esto de una manera que permita a los usuarios votar?


¿Tal vez configurar un enlace de Facebook a una página de fans con opciones "me gusta" y demás? Un ícono con una pequeña etiqueta en el menú principal sería lo suficientemente agradable y no tan molesto, si es que lo sería, como un recordatorio emergente.


Creo que redirigir a los usuarios a la página web de su aplicación es la única solución aquí.


En cualquier caso: por ejemplo, botón

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


La política de Play Store dice que si notificamos a los usuarios que realicen alguna acción en nuestra aplicación, también debemos permitir que los usuarios cancelen la operación si el usuario no desea realizar esa acción. Entonces, si les pedimos a los usuarios que actualicen la aplicación o califiquen la aplicación en Play Store con Sí (Ahora), también debemos dar una opción para No (Más tarde, No ahora), etc.

rateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { r.showDefaultDialog(); } });

donde r es una clase que contiene el método showDefaultDialog

public void showDefaultDialog() { //Log.d(TAG, "Create default dialog."); String title = "Enjoying Live Share Tips?"; String loveit = "Love it"; String likeit = "Like it"; String hateit = "Hate it"; new AlertDialog.Builder(hostActivity) .setTitle(title) .setIcon(R.drawable.ic_launcher) //.setMessage(message) .setPositiveButton(hateit, this) .setNegativeButton(loveit, this) .setNeutralButton(likeit, this) .setOnCancelListener(this) .setCancelable(true) .create().show(); }

Para descargar un ejemplo completo [androidAone]: http://androidaone.com/11-2014/notify-users-rate-app-playstore/


Para Google Marketplace, eche un vistazo a este fragmento de código limpio. Estoy seguro de que puede modificarlo para iniciar Amazon Appstore en lugar o además de.

EDITAR: Parece que el sitio cambió su estructura de URL, así que he actualizado el enlace anterior para que funcione ahora. Aquí hay una copia antigua en la Máquina de Wayback en caso de que su sitio se caiga nuevamente. Pegaré el contenido principal de la publicación a continuación como una copia de seguridad adicional, pero es posible que desee visitar el enlace para leer los comentarios y obtener actualizaciones.

Este código le pide a los usuarios comprometidos que califiquen su aplicación en el mercado de Android (inspirado por iOS Appirater). Requiere un cierto número de lanzamientos de la aplicación y días desde la instalación antes de que aparezca el diálogo de clasificación.

Ajuste APP_TITLE y APP_PNAME a sus necesidades. También debes ajustar DAYS_UNTIL_PROMPT y DAYS_UNTIL_PROMPT .

Para probarlo y modificar la apariencia del diálogo, puede llamar a AppRater.showRateDialog(this, null) desde su Actividad. El uso normal es invocar AppRater.app_launched(this) cada vez que se invoca su actividad (por ejemplo, desde dentro del método onCreate). Si se cumplen todas las condiciones, aparece el diálogo.

public class AppRater { private final static String APP_TITLE = "YOUR-APP-NAME"; private final static String APP_PNAME = "YOUR-PACKAGE-NAME"; private final static int DAYS_UNTIL_PROMPT = 3; private final static int LAUNCHES_UNTIL_PROMPT = 7; public static void app_launched(Context mContext) { SharedPreferences prefs = mContext.getSharedPreferences("apprater", 0); if (prefs.getBoolean("dontshowagain", false)) { return ; } SharedPreferences.Editor editor = prefs.edit(); // Increment launch counter long launch_count = prefs.getLong("launch_count", 0) + 1; editor.putLong("launch_count", launch_count); // Get date of first launch Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0); if (date_firstLaunch == 0) { date_firstLaunch = System.currentTimeMillis(); editor.putLong("date_firstlaunch", date_firstLaunch); } // Wait at least n days before opening dialog if (launch_count >= LAUNCHES_UNTIL_PROMPT) { if (System.currentTimeMillis() >= date_firstLaunch + (DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) { showRateDialog(mContext, editor); } } editor.commit(); } public static void showRateDialog(final Context mContext, final SharedPreferences.Editor editor) { final Dialog dialog = new Dialog(mContext); dialog.setTitle("Rate " + APP_TITLE); LinearLayout ll = new LinearLayout(mContext); ll.setOrientation(LinearLayout.VERTICAL); TextView tv = new TextView(mContext); tv.setText("If you enjoy using " + APP_TITLE + ", please take a moment to rate it. Thanks for your support!"); tv.setWidth(240); tv.setPadding(4, 0, 4, 10); ll.addView(tv); Button b1 = new Button(mContext); b1.setText("Rate " + APP_TITLE); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME))); dialog.dismiss(); } }); ll.addView(b1); Button b2 = new Button(mContext); b2.setText("Remind me later"); b2.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); ll.addView(b2); Button b3 = new Button(mContext); b3.setText("No, thanks"); b3.setOnClickListener(new OnClickListener() { public void onClick(View v) { if (editor != null) { editor.putBoolean("dontshowagain", true); editor.commit(); } dialog.dismiss(); } }); ll.addView(b3); dialog.setContentView(ll); dialog.show(); } }



Simplemente escriba estas dos líneas de código debajo del botón "Clasificar estas aplicaciones" y lo llevará a la tienda de Google donde ha cargado su aplicación.

String myUrl ="https://play.google.com/store/apps/details?id=smartsilencer"; startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(myUrl)));


También puede utilizar RateMeMaybe: https://github.com/Kopfgeldjaeger/RateMeMaybe

Le brinda bastantes opciones para configurar (mínimo de días / inicia hasta el primer aviso, mínimo de días / inicia hasta cada siguiente aviso si el usuario elige "no ahora", título del diálogo, mensaje, etc.). También es fácil de usar.

Ejemplo de uso de README:

RateMeMaybe rmm = new RateMeMaybe(this); rmm.setPromptMinimums(10, 14, 10, 30); rmm.setDialogMessage("You really seem to like this app, " +"since you have already used it %totalLaunchCount% times! " +"It would be great if you took a moment to rate it."); rmm.setDialogTitle("Rate this app"); rmm.setPositiveBtn("Yeeha!"); rmm.run();

Editar: si solo desea mostrar el indicador de forma manual, también puede usar el RateMeMaybeFragment

if (mActivity.getSupportFragmentManager().findFragmentByTag( "rmmFragment") != null) { // the dialog is already shown to the user return; } RateMeMaybeFragment frag = new RateMeMaybeFragment(); frag.setData(getIcon(), getDialogTitle(), getDialogMessage(), getPositiveBtn(), getNeutralBtn(), getNegativeBtn(), this); frag.show(mActivity.getSupportFragmentManager(), "rmmFragment");

getIcon () puede reemplazarse con 0 si no desea utilizar uno; El resto de las llamadas getX pueden ser reemplazadas por Strings.

Cambiar el código para abrir Amazon Marketplace debería ser fácil


Uri uri = Uri.parse("market://details?id=" + context.getPackageName()); Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); try { context.startActivity(goToMarket); } catch (ActivityNotFoundException e) { UtilityClass.showAlertDialog(context, ERROR, "Couldn''t launch the market", null, 0); }