Utilice la aplicación para calificarla en el mercado

Actualmente estoy desarrollando una aplicación en Android donde quiero dar alguna funcionalidad al usuario para calificar la aplicación actual. Su será un botón en su clic que va a preguntar si el usuario desea calificar la aplicación o no? En caso afirmativo, se irá a la aplicación de mercado en el dispositivo para evaluar la aplicación (Mercado debe mostrar esta aplicación.) O se abrirá el navegador que se carga el mercado y mostrar esta aplicación. Cualquiera usó este tipo de funcionalidad antes. Proporcione alguna ayuda.

Gracias.

Siempre uso un método como este:

private void launchMarket() { Uri uri = Uri.parse("market://details?id=" + getPackageName()); Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); try { startActivity(goToMarket); } catch (ActivityNotFoundException e) { Toast.makeText(this, R.string.couldnt_launch_market, Toast.LENGTH_LONG).show(); } } 
 public class AppRater { private final static String APP_TITLE = "App Name";// App Name private final static String APP_PNAME = "com.example.name";// Package Name private final static int DAYS_UNTIL_PROMPT = 3;//Min number of days private final static int LAUNCHES_UNTIL_PROMPT = 3;//Min number of launches 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 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(); }} 

Ahora Integre la clase a su actividad como esta ->

 AppRater.app_launched(this); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.