is their a direct link to review my Android app (not within)

gilush14 picture gilush14 · Nov 3, 2011 · Viewed 7.3k times · Source

there a lot of q&a about how users can rate my app within the app, but i need just a direct link to review\rate my app to send the user by mail and not to my app page in the market because there he need to cilck review then login and then write the review and this is exhausting and not user friendly.

tnx

Answer

Martillador81 picture Martillador81 · Mar 7, 2013

In order not to disturb the user with annoying forms you can add a menu item that let the user rate the application through your application site in google play. After the user click in this option, this should not been showed again (even if the user did not rate the app at the end). This solution is quite user friendly, in my opinion.

Add a menu item like this (in res\menu[menu].xml):

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

(other options...) 

<item android:id="@+id/MenuRateApp" android:title="@string/menu_Rate_app"
  android:icon="@drawable/ic_menu_star"></item>
</menu>

In your main activity add the following in order to hide the option once the user has already rated your app:

@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
    MenuItem register = menu.findItem(R.id.MenuRateApp);      
    if(fApp.isRated()) {
        register.setVisible(false);
    }
    return true;
}

Change the fApp.isRated() for a method or variable that keep a boolean saying if the user already rated the app (write and read this value using the sharedPreferences mechanism).

The code to redirect the user to your app site in Google Play could be like the following:

private boolean MyStartActivity(Intent aIntent) {
try {
    startActivity(aIntent);
    return true;
} catch (ActivityNotFoundException e) {
    return false;
}
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    (other options code...)

    if (item.getItemId() == R.id.MenuRateApp) {
    //Try Google play
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse("market://details?id="+getPackageName()));
        if (MyStartActivity(intent) == false) {
            //Market (Google play) app seems not installed, let's try to open a webbrowser
            intent.setData(Uri.parse("https://play.google.com/store/apps/details?id="+getPackageName()));
            if (MyStartActivity(intent) == false) {
                //Well if this also fails, we have run out of options, inform the user.
                Toast.makeText(this, this.getString(R.string.error_no_google_play), Toast.LENGTH_LONG).show();
            }
        }
        //Do not disturb again (even if the user did not rated the app in the end)
        fApp.setRated(true);
    }

  return super.onOptionsItemSelected(item);
}

Hope this solution feets your requirements.

Note: part of the code has been borrowed from this site:

http://martin.cubeactive.com/android-how-to-create-a-rank-this-app-button/

Example: enter image description here