在应用程序中直接对Google Play应用进行评分

54

我需要在我的安卓应用程序中添加评分选项。

我找到了这个链接

但我不确定这是否是我要寻找的。我只想让用户有能力在Google Play上评价我的应用程序。


1
以下代码在模拟器上无法运行,因为那里没有市场应用程序! - K_Anas
哦,我明白了。感谢您的回答和代码示例 :) - Matrosov Oleksandr
1
链接已经损坏 :S - Ivor
10个回答

143
评分是通过市场应用程序进行的,因此评分可以得到信任。如果允许应用自己处理评分,则开发人员随时都可以操纵应用的评分。因此您无法自己处理评分。您只能提示用户转到Google Play上的应用页面并要求他们为您的应用程序评分以获取更多支持。
使用内置意图启动市场。
private void launchMarket() {
    Uri uri = Uri.parse("market://details?id=" + getPackageName());
    Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);
    try {
        startActivity(myAppLinkToMarket);
    } catch (ActivityNotFoundException e) {
        Toast.makeText(this, " unable to find market app", Toast.LENGTH_LONG).show();
    }
}

6
这段代码直接从之前的回答中获取 https://dev59.com/_2w05IYBdhLWcg3w_WxN?rq=1 - Sofi Software LLC
他们只是被重定向到我们在Google Play商店上的应用程序,但我们如何找出用户是否已经评价了呢? - Name is Nilay
无法检查用户是否已为您的应用程序编写了评论。 - Muhammad Shauket
7
安卓系统中仍然没有应用内评分功能,对吗? iOS的本地应用程序评分做得相当不错。 - Canberk Ozcelik
2
Android 还没有这个功能,真是太疯狂了。我们有一款 Android 和 iOS 应用程序。两个应用程序的用户数量大致相同。Android 版本比 iOS 应用程序早推出 2 年以上,并且iOS应用程序的评分是 Android 的两倍,因为你可以直接在应用程序内进行评分。整理好你的事情,Google! - DiscDev
显示剩余2条评论

9

只需简单地执行以下操作...

final String appPackageName = "your.package.name";

try {
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
    } catch (android.content.ActivityNotFoundException anfe) {
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + appPackageName)));
    }

3
我认为没有办法检测出谁已经对你的应用进行了评价。 - TomazStoiljkovic
好的,谢谢@Kruherson,这正是我想的,只是想确认一下。 - Shridutt Kothari
1
如果可能的话,检查用户是否对应用程序进行了评分,很快我们就可以看到不良开发人员惩罚用户不进行评分。这不是一个好主意。 - Renascienza
这个程序对未找到的情况处理得更好了..太棒了!谢谢。 - sanjeev

8

1
他们只是被重定向到我们在Google Play商店上的应用程序,但我们如何找出用户是否已经评价了呢? - Name is Nilay

7
public void launchMarket() 
{
    Uri uri = Uri.parse("market://details?id=" + this.getPackageName());
    Intent myAppLinkToMarket = new Intent(Intent.ACTION_VIEW, uri);
    try 
    {
        mContext.startActivity(myAppLinkToMarket);
    } 
    catch (ActivityNotFoundException e) 
    {
        Toast.makeText(this, " Sorry, Not able to open!", Toast.LENGTH_SHORT).show();
    }
}

1
他们只是被重定向到我们在Google Play商店上的应用程序,但我们如何找出用户是否已经评价了呢? - Name is Nilay
到目前为止,还没有确定的方法可以知道用户是否已经对应用程序进行了评分。大多数情况下,我假设如果用户接受了评分应用程序的对话框,他/她就会对其进行评分。这是为了确保我不会一遍又一遍地打扰他们。 - Atin Agrawal

3
对于下面的代码,我使用了try和catch方法。try和catch方法将按照以下方式工作。在按钮点击时,try方法将尝试搜索您的Android手机上的Google Play商店应用程序,并在已安装的情况下启动它并导航到Play商店中的您的应用程序。但是,如果您的Android手机上没有Play商店应用程序,则执行catch方法并启动已安装在您的应用程序上的浏览器,并导航到Play商店中的您的应用程序。getPackageName()是一个内置函数,用于获取您的项目包名称。您可以手动将其添加为字符串。
String package="com.example.android";

完整的代码。
   button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                     try {
                            Uri uri = Uri.parse("market://details?id="+getPackageName()+"");
                            Intent goMarket = new Intent(Intent.ACTION_VIEW, uri);
                            startActivity(goMarket);
                        }catch (ActivityNotFoundException e){
                            Uri uri = Uri.parse("https://play.google.com/store/apps/details?id="+getPackageName()+"");
                            Intent goMarket = new Intent(Intent.ACTION_VIEW, uri);
                            startActivity(goMarket);
                        }
                }
            });

3

用户无法直接在您的应用中对其进行评级。他们必须前往Google Play并对其进行评级。如链接所示,您必须将用户重定向到Google Play上查看您的应用程序:

mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME)));

1
我正在寻找类似于iOS的功能,用户无需重定向到Play商店并再次被要求编写评论。最初,我认为这是不可能的,但幸运的是我的理解已经过时了。找到了这个app,虽然需要搜索代码。

你找到那段代码了吗? - Wu Yuan Chun
2
@WuYuanChun 我已经尝试了所有可能的选项,甚至在Linkedin上询问了开发者。但是他没有回复,我也检查了许多应用程序,没有一个提供类似于这个示例应用程序的功能。 - Swapnil Kadam

0

我经常使用这样的方法

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, "couldn't launch the market", Toast.LENGTH_LONG).show();
    }
}

0
 Intent intent = new Intent(Intent.ACTION_VIEW);
  intent.setData(Uri.parse("market://details?id=com.test(This is the package name)"));
  startActivity(intent);

1
你可以使用共享首选项文件来实现这个功能。所有用户只需被询问一次,然后你就可以保存他们的偏好设置。 - hkaraoglu

-1

将这段简单的代码粘贴到您的应用程序中,即可转到Google Play商店评分页面

Intent intent1 = new Intent(Intent.ACTION_VIEW,
                        Uri.parse("market://details?id="
                                + MainActivity.this.getPackageName()));
startActivity(intent1);

如果您的设备上没有安装市场应用程序,则此方法将无法正常工作。您需要使用try/catch来处理以下异常:android.content.ActivityNotFoundException: No Activity found to handle Intent。 - Rajeev Jayaswal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接