12

我已经做了一个应用程序,现在我想在其中实现 Rate Us 功能。所以为此我在我的应用程序中添加了这段代码

i = new Intent(Intent.ACTION_VIEW , Uri.parse("market://details?id=com.bet.compny"));
startActivity(i);
break;

但是当我点击按钮来评价我们时,我们会强制关闭。这是我的日志猫输出。

android.content.ActivityNotFoundException: No Activity found to handle Intent {     
act=android.intent.action.VIEW dat=market://details?id=com.bet.compny }

任何帮助将不胜感激。

4

9 回答 9

20

不知道为什么会出现错误,但这实际上应该有效。我也这样做:

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

但请记住,如果您在模拟器/没有 Play 商店的设备上测试它,这会崩溃。所以我建议你把它包装起来试试看

于 2012-10-21T13:48:43.283 回答
16

在没有Google PlayStore的设备上运行时会发生此错误。我猜你可能是在没有 Playstore 的模拟器设备上运行它,因此会出现错误。

使用 try catch 实现如下:

try{
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id="+getPackageName())));
    }
    catch (ActivityNotFoundException e){
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id="+getPackageName())));
    }
于 2018-08-25T18:28:10.507 回答
7

我总是使用下面对我们有用的代码:

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

认为它会为您提供充分的帮助。

于 2014-11-20T11:31:06.487 回答
2

这是最好的方法;

Appirater 是一个基于 Arash Payan Appirater iPhone 的原始 Appirater 的 android 库。目标是创建一个设计简洁的 App Rating 提示,您可以将其放入任何 android 应用程序中,这将有助于提醒您的用户在 android Market 上查看您的应用程序。

https://github.com/sbstrm/appirater-android

于 2012-10-21T13:34:18.907 回答
2
try {
    Uri marketUri = Uri.parse("market://details?id=" + getPackageName());
    Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
    startActivity(marketIntent);
}catch(ActivityNotFoundException e) {
    Uri marketUri = Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName());
    Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
    startActivity(marketIntent);
}
于 2017-05-16T07:55:18.823 回答
1

最佳和简单的代码

private final String mStoreLink;

没有活动需要上下文/活动

 this.mStoreLink = "market://details?id=" + activity.getPackageName();

创建一个这样的方法。

public void rateUsOnGooglePlay() {
        final Uri marketUri = Uri.parse(mStoreLink);
        try {
            activity.startActivity(new Intent(Intent.ACTION_VIEW, marketUri));
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(activity, "Couldn't find PlayStore on this device", Toast.LENGTH_SHORT).show();
        }
    }
于 2021-04-28T03:32:24.533 回答
0

这通常发生在没有 Google Play 商店的设备上

于 2012-10-21T13:56:35.193 回答
0

我想你已经在模拟器中测试了这个代码,而模拟器没有 plastore 应用程序,所以这个错误来了。

我已经实现了这个,我的代码是这样的。

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=applicationID of play sotre")));

请在下面的代码中尝试捕获。

并在 android 设备中尝试此代码。

于 2013-12-23T07:53:28.993 回答
0
Uri marketUri = Uri.parse("market://details?id=" + packageName);
Intent marketIntent = new Intent(Intent.ACTION_VIEW, marketUri);
startActivity(marketIntent);
于 2014-03-18T12:47:10.603 回答