Pet*_*vka 65 android google-play google-play-core
我正在尝试使用昨天刚刚发布的 Google 的 Review API(Play Core library 1.8.0)。请参阅https://developer.android.com/guide/playcore/in-app-review
我仔细地遵循了故障排除部分,我确保该应用程序是从内部测试轨道下载的,我的帐户没有对该应用程序的评论,该应用程序在该用户的库中等等。我什至尝试了一个全新的帐户,但每次 com.google.android.finsky.inappreviewdialog.InAppReviewActivity 仅显示立即消失。
我从我的活动的 onResume() 方法调用以下代码:
reviewManager = ReviewManagerFactory.create(AlarmClock.this);
Logger.logInfo("Rating: requestReviewFlow() ");
reviewManager.requestReviewFlow().addOnSuccessListener(new OnSuccessListener<ReviewInfo>() {
@Override
public void onSuccess(ReviewInfo result) {
Logger.logInfo("Rating: launchReviewFlow() ");
reviewManager.launchReviewFlow(AlarmClock.this, result).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void result) {
Logger.logInfo("Rating: launchReviewFlow() success ");
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
两个侦听器都返回成功。
这是日志输出:
2020-08-06 16:01:29.317 29618-29618/? I/MyApp: [06Aug 16:01:29.317, main]: Rating: requestReviewFlow()
2020-08-06 16:01:29.318 29618-29618/? I/PlayCore: UID: [10409] PID: [29618] ReviewService : requestInAppReview (com.mypackage)
2020-08-06 16:01:29.320 29618-29774/? I/PlayCore: UID: [10409] PID: [29618] ReviewService : Initiate binding to the service.
2020-08-06 16:01:30.081 29618-29618/? I/PlayCore: UID: [10409] PID: [29618] ReviewService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.inappreviewservice.InAppReviewService})
***2020-08-06 16:01:30.082 29618-29774/? I/PlayCore: UID: [10409] PID: [29618] ReviewService : linkToDeath***
2020-08-06 16:01:30.355 29618-29637/? I/PlayCore: UID: [10409] PID: [29618] OnRequestInstallCallback : onGetLaunchReviewFlowInfo
2020-08-06 16:01:30.355 29618-29774/? I/PlayCore: UID: [10409] PID: [29618] ReviewService : Unbind from service.
2020-08-06 17:02:21.590 7478-7478/? I/MyApp: [06Aug 17:02:21.590, main]: Rating: launchReviewFlow()
2020-08-06 17:02:21.630 1511-4316/? I/ActivityTaskManager: START u0 {cmp=com.android.vending/com.google.android.finsky.inappreviewdialog.InAppReviewActivity (has extras)} from uid 10122
2020-08-06 17:02:21.750 7478-7478/? I/MyApp: [06Aug 17:02:21.750, main]: Rating: launchReviewFlow() success
Run Code Online (Sandbox Code Playgroud)
任何人都成功地使这个工作?有小费吗。十分感谢!
Pra*_*dal 23
我在谷歌问题跟踪器上提出了一个关于此的问题。我也有同样的问题。
有关更多信息,请查看我的问题跟踪网址:https : //issuetracker.google.com/issues/167352813
Kof*_*ofi 19
好的,我遇到了与 OP 所描述的完全相同的问题,并在此处的问题跟踪器中列出:https : //issuetracker.google.com/issues/167352813并且 GoogleDev 尚未解决。
相同的 UI 表现形式,相同的日志条目(顺便说一句,日志条目在运行时是相同的,并带有“ReviewService:linkToDeath”条目,但我们不用担心,嗯?)
不过,为了避免太多悬念,您无疑想知道关键是IT WORKS。 应用内评论 API 有效! 我不需要重复调用审查流程的代码块,它与文档中的几乎完全相同,类似于 OP 列出的内容,其他几个人也友好地重复了一遍。
我花了一段时间,但我按如下方式找到了它的底部,简而言之:
您的设备需要有最新的 Google Play 系统更新
无论您的应用是否发布在 Play 商店中,您都绝对需要通过内部应用测试或共享进行测试(我只做过“内部应用测试”,但我希望同样适用)
要使用 Android Studio 调试您的代码,您需要在您的设备上安装内部应用测试版本并成功运行调试器,同时您的 IAT 版本仍然安装在设备上至少一次
一旦启动并运行,当审查对话框弹出时,您必须注意,如果您提交审查,那么您已经使用了所有配额。当您尝试再次启动审核流程时,看起来“问题”又回来了。你得到了“成功”的启动,但没有任何显示。如果您提交了评论(这就是为什么它绝对需要在 IAT 中),那么它只是一个“私人评论”(不会在您的应用页面上公开显示),您需要删除评论以获得POP再次展示。
您可以无限地选择“Not Now”而不是“Submit” (好吧,我尝试了大约两打),每次您(重新)调用流程时都会启动弹出对话框。
因此,逐步修复:
通过卸载您的应用来准备您的设备,然后确保您拥有最新的 Google Play 商店更新。在我的 Sony Xperia X1 上,这是设置->关于手机->Android 版本->Google Play 系统更新。
无论上述操作是否重新启动了您的设备,请关闭您的设备然后再次打开(不要重新启动 -关闭然后打开,即冷启动)。
现在进入 Settings->Apps & notification->Google Play->Storage & Cache,然后执行CLEAR CACHE和CLEAR STORAGE。(这不应影响您安装的任何应用程序)。
根据您的应用内审查代码库为 IAT 创建一个签名版本。即使您有生产版本,您也必须这样做。
现在在您的设备上安装您的IAT RELEASE - 如果您从正确的位置(即 IAT)下载,则应将“(内部测试版)”或与之相关的文字附加到您的应用程序名称中,(不要运行它,只需安装)
在 Android studio Clean, Rebuild and Debug 中,安装了 IAT 版本的设备上的应用程序。如果您收到一条消息,提示“该设备已经有一个应用程序具有相同的包但具有不同的签名。” 不要单击“确定”来卸载您的 IAT 版本,请 按照此处的说明进行操作:Android:错误 - 应用程序具有相同的打包不同签名。接受的答案是正确的。如果您必须这样做,请注意您应该再次执行Clean and Rebuild->Debug。
希望,现在一切都应该好了。成功完成上述步骤后,您实际上可以在后续调试会话中从设备上“清理”卸载应用程序,它仍然可以工作。
要测试和删除评论,请注意以下事项。当您提交评论时,您将能够在 Google Play Console 中看到它(顺便说一下,不是在“评论”下,而是在“测试反馈”下)。您似乎也无法在“测试反馈”下删除您的评论。您需要从设备上的IAT 下载页面将其删除。在那里,在您的私人反馈标题下,选择您评论右侧的直角省略号,然后简单地“删除”。
您的弹出窗口现在每次都会显示,直到您提交另一条评论。瞧!
小智 12
我也看到了同样的问题,我的请求审核流程有效,然后启动审核流程有效,但没有任何显示(我确实注意到屏幕底部中心的小线短暂出现,我的音频短暂中断,因为应用程序暂停然后恢复,但没有出现审核流程)。
我能够通过向我的设备添加一个不在我的许可证测试者列表(Google 开发者控制台)中并且之前没有审查过我的应用程序的用户来使其工作。我能够显示一次评级弹出窗口,我取消了操作以便我可以再次测试它,但之后它不会再次出现。这似乎是一次性的事情,他们正在积极防止通过评论弹出窗口惹恼用户。
这个功能对我来说似乎没什么用,我在设置屏幕上有一个按钮来评价我的应用程序。由于我不知道发生了什么,我无法感谢用户,我无法禁用该按钮或显示“您已经评价过这个谢谢”消息,并且该按钮似乎什么也没做,看起来像一个错误。我猜想的目的是在游戏过程中询问用户,如果他们不小心取消了对话,那对你来说太糟糕了。
理想情况下,Google 应允许许可证测试用户多次显示此弹出窗口以进行测试。
Hon*_*ong 10
我只想分享今天(2020-09-03)可靠运行的代码。它基本上是从官方文件中复制的
ReviewManager manager = ReviewManagerFactory.create(activity);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
try {
if (task.isSuccessful()) {
// We can get the ReviewInfo object
ReviewInfo reviewInfo = task.getResult();
Task<Void> flow = manager.launchReviewFlow(activity, reviewInfo);
flow.addOnCompleteListener(task2 -> {
// The flow has finished. The API does not indicate whether the user
// reviewed or not, or even whether the review dialog was shown. Thus, no
// matter the result, we continue our app flow.
utility.logMessageAsync(activity, "In-app review returned.");
});
} else {
// There was some problem, continue regardless of the result.
goToAppPage(activity);
}
} catch (Exception ex) {
utility.logExceptionAsync(activity, "Exception from openReview():", ex);
}
});
Run Code Online (Sandbox Code Playgroud)
它在 Android 10 上通过内部应用程序共享进行了测试。它从未无法显示评论对话框。
小智 6
对于需要工作 JAVA 代码的所有用户,请在下面找到我的代码:
ReviewInfo reviewInfo;
ReviewManager manager;
Run Code Online (Sandbox Code Playgroud)
在创建
manager = ReviewManagerFactory.create(this);
private void Review(){
manager.requestReviewFlow().addOnCompleteListener(new OnCompleteListener<ReviewInfo>() {
@Override
public void onComplete(@NonNull Task<ReviewInfo> task) {
if(task.isSuccessful()){
reviewInfo = task.getResult();
manager.launchReviewFlow(MainActivity.this, reviewInfo).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Toast.makeText(MainActivity.this, "Rating Failed", Toast.LENGTH_SHORT).show();
}
}).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(MainActivity.this, "Review Completed, Thank You!", Toast.LENGTH_SHORT).show();
}
});
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
Toast.makeText(MainActivity.this, "In-App Request Failed", Toast.LENGTH_SHORT).show();
}
});
}
Run Code Online (Sandbox Code Playgroud)
确保实现以下内容:
implementation 'com.google.android.play:core:1.8.0'
Run Code Online (Sandbox Code Playgroud)
另请注意,该对话框仅在您的应用在 Google Play 管理中心帐户上进行生产、Alpha 或内部测试时才会显示。
小智 6
我遇到了同样的问题,我通过以下步骤解决了:
有用!!
注意:如果应用程序尚未发布,您可以使用 Google Console App Sharing
就我而言,是的,如果正在使用的\xe2\x80\x99s 帐户已经留下评论,则此操作将不起作用。
\n然而,从 Play 商店删除评论并不总是有效。有些东西挥之不去。
\n因此,除非您想感到悲伤,否则每次删除 \xe2\x80\x99S 留下的评论时,请清除 PLAY STORE 应用程序\xe2\x80\x99S 存储。您不需要像其他人建议的那样清除缓存(清除存储也可以做到这一点),但清除 Play Store app\xe2\x80\x99s 缓存还不够。一旦我这样做了,我就可以不断地测试这个令人作呕的东西。
\n祝你好运。这是什么乱七八糟的事情啊。
\nZha*_*kov -1
文档说它不会在您每次请求时显示,因为它有配额限制: https ://developer.android.com/guide/playcore/in-app-review#quotas
我刚刚将它包含在我的项目中,并且它只显示了一次对话框。这有点不方便,因为我们无法对其进行任何控制。
另外,我注意到,如果您尝试一次又一次地显示对话框,导航栏就会开始闪烁(就像它想显示对话框但被忽略一样)。
| 归档时间: |
|
| 查看次数: |
25131 次 |
| 最近记录: |