Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 267
gilush14 Avatar asked Dec 21 '22 06:12

gilush14


2 Answers

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

like image 199
Martillador81 Avatar answered Dec 28 '22 10:12

Martillador81


The premise from where you start, saying that rating an app is exhausting and not user friendly is not applicable because the user should only rate your app when he is willing to "donate" 30 seconds of his life to rate your app. There is a minimal responsibility involved when rating other people work.

The farthest I'd go, since there are also ethics involved, is providing a button in the About section of my app with a link to the Market app screen containing my app, using an Intent to the market (search StackOverflow). Other apps constantly ask a user to rate... I find it bothersome, but at least they are not pushing me right into the Edit and star Views of the Market.

The question you need to ask yourself: do you need to disrupt the user experience of your app by automatically stopping the activity and displaying this "oh-my-gosh-rate-my-app" view in the Market app?

You don't need to push the user into that situation... chances are you will end up with more low ratings than good ratings. I'd take one star just because of that. :-)

Personally, I wouldn't do it and leave the way it is. My 2 cents, of course.

like image 42
davidcesarino Avatar answered Dec 28 '22 10:12

davidcesarino