当前位置: 首页 > 知识库问答 >
问题:

如何使用ReviewManager(Google API)进行应用内审核

唐裕
2023-03-14

我尝试通过以下内容集成应用内审查API:https://developer.android.com/guide/playcore/in-app-review

这是我的代码:

public void Rate() {
    ReviewManager manager = ReviewManagerFactory.create(context);
    Task<ReviewInfo> request = manager.requestReviewFlow();
    request.addOnCompleteListener(new OnCompleteListener<ReviewInfo>() {
        @Override
        public void onComplete(@NonNull Task<ReviewInfo> task) {
            if (task.isSuccessful()) {
                ReviewInfo reviewInfo = task.getResult();
                if (reviewInfo != null) {
                    Task<Void> flow = manager.launchReviewFlow(context, reviewInfo);
                    flow.addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if (task.isSuccessful()) {
                                Toast.makeText(context, "Thank you, have a nice day!", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });
                }
            }
        }
    });
}

应用程序显示“谢谢你,祝你有美好的一天!”,所以它应该是成功的。但由于未知原因,提示没有出现。以下是调试消息:

I/PlayCore: UID: [11990]  PID: [12648] ReviewService : requestInAppReview (tutut.slide.puzzle)
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : Initiate binding to the service.
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : requestInAppReview (tutut.slide.puzzle)
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : Initiate binding to the service.
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.inappreviewservice.InAppReviewService})
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : linkToDeath
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.inappreviewservice.InAppReviewService})
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : linkToDeath
I/PlayCore: UID: [11990]  PID: [12648] OnRequestInstallCallback : onGetLaunchReviewFlowInfo
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : Unbind from service.
I/PlayCore: UID: [11990]  PID: [12648] OnRequestInstallCallback : onGetLaunchReviewFlowInfo
I/Timeline: Timeline: Activity_launch_request time:111803586
I/PlayCore: UID: [11990]  PID: [12648] ReviewService : Unbind from service.
I/Timeline: Timeline: Activity_launch_request time:111803607
I/AndroidGraphics: paused
I/AndroidInput: sensor listener tear down
W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@4b2d4c4
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: com.google.android.play.core.common.PlayCoreDialogWrapperActivity@26a7930
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: com.google.android.play.core.common.PlayCoreDialogWrapperActivity@26a7930
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: com.google.android.play.core.common.PlayCoreDialogWrapperActivity@26a7930
W/JavaBinder: BinderProxy is being destroyed but the application did not call unlinkToDeath to unlink all of its death recipients beforehand.  Releasing leaked death recipient: com.google.android.play.core.internal.ah
    BinderProxy is being destroyed but the application did not call unlinkToDeath to unlink all of its death recipients beforehand.  Releasing leaked death recipient: com.google.android.play.core.internal.ah
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: com.google.android.play.core.common.PlayCoreDialogWrapperActivity@9bb16cf
I/chatty: uid=11990(tutut.slide.puzzle) identical 1 line
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: com.google.android.play.core.common.PlayCoreDialogWrapperActivity@9bb16cf
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: tutut.slide.puzzle.AndroidLauncher@f04163e
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: tutut.slide.puzzle.AndroidLauncher@f04163e
I/Toast: Show toast from OpPackageName:tutut.slide.puzzle, PackageName:tutut.slide.puzzle
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: tutut.slide.puzzle.AndroidLauncher@f04163e
D/ForceDarkHelper: updateByCheckExcludeList: pkg: tutut.slide.puzzle activity: tutut.slide.puzzle.AndroidLauncher@f04163e
I/AndroidInput: sensor listener setup
I/AndroidGraphics: resumed
I/Toast: Show toast from OpPackageName:tutut.slide.puzzle, PackageName:tutut.slide.puzzle

我哪里错了?

共有1个答案

索寒
2023-03-14

这也许能帮你看看这个

我最近使用了应用程序内回顾,并遵循本教程及其工作原理

 类似资料:
  • 我目前正在从事一个利用Spring数据Neo4j的项目。每当创建节点时,我都希望创建一个包含创建日期和用户的引用审核节点。 我提出的一个解决方案是编写一个AOP方面,它与我的服务层的create方法挂钩。这对于没有级联的实体很好,但是级联的实体呢?它们没有在我的服务层中显式传递,因此我的AOP类不会拦截它们。JPA中是否有类似实体侦听器的概念,或者如何连接到该机制中?

  • 我随时都有一个“用户”表,如果插入、更新或删除了一行,那么我需要在“用户审核”表中插入一行,其中包含所有用户数据和操作列,以记录执行的操作。 我用的是Spring批处理,Spring数据JPA把数据插入用户表 我如何使用SpringDataJPA在SpringBatch中实现这一点,或者JPA/hibernate是否提供了任何实现?

  • 我有一个带有spring Boot(v2.3.3)和spring数据的spring web应用程序。我的评估表包含以下列: Id 我的用例是表中名称和地址的任何更改评估应该创建一个新行,版本以相同的id递增。 因此,基本上只有当地址或姓名更新时,才能在评估表中插入新记录。下面是一个示例: 现有记录: 例如,名称已更新为Ryan,应该有两行,如下所示: 因此,基本上,任何名称和地址的变化都应在评估表

  • 问题内容: 我有一个简单的代码,可为特定路由提供JSON响应。这是我当前的代码: 如何使XML响应等效于上述JSON? 问题答案: 您可以使用npm上可用的任何数量的XML库。这是使用简单命名的“ xml ”库的示例: 有关如何将JavaScript对象转换为XML的描述,请参见模块的文档。当然,如果您需要以特定的XML格式返回的内容,则还有更多工作要做。

  • 我正在尝试利用昨天刚刚发布的Google的Review API(Play Core Library1.8.0)。参见https://developer.android.com/guide/playcore/in-app-review 我仔细地遵循了疑难解答部分,我确保应用程序是从内部测试轨道下载的,我的帐户没有对应用程序的审查,应用程序在该用户的库中等等。我甚至尝试过使用一个全新的帐户,但每次显示

  • 如果配置了邮箱,用户提交审核之后会给管理员发送邮件,邮件里带有审核地址。 或者您也可以在应用列表里找到未审核的应用进入。 审核应用 提交的基础信息 生成的kubernetes yaml 代码库中的Dockerfile文件 驳回 如果管理员觉得提交的有问题,可以进行驳回,驳回填定理由会发送至提交者的邮箱。 若没有啥问题,可以点击“开始部署”按钮。 开始部署之后应用会自动在jenkins上创建一个jo