Android 实施应用内bp后,如何在应用内解锁付费风味

Android 实施应用内bp后,如何在应用内解锁付费风味,android,google-play,in-app-purchase,in-app-billing,Android,Google Play,In App Purchase,In App Billing,我已经成功地用实现了应用内计费,并成功地对其进行了测试,但如何在同一个应用内解锁我的付费版本 口味 flavorDimensions "default" productFlavors { free { minSdkVersion 15 targetSdkVersion 27 } paid { minSdkVersion 15 targetSdkV

我已经成功地用实现了应用内计费,并成功地对其进行了测试,但如何在同一个应用内解锁我的付费版本

口味

flavorDimensions "default"
    productFlavors {
        free {
            minSdkVersion 15
            targetSdkVersion 27
        }
        paid {
            minSdkVersion 15
            targetSdkVersion 27
        }
    }
检查资源

我不想:

intent.setData(Uri.parse("market://search?q=pname:MyApp")); 
不确定这是否有效:我想把所有东西都放在免费版本中。(付费版本功能保持为不可见)并在购买成功时将其设置为可见模式。 但是,把口味放在首位有什么意义呢

如果我们能在GooglePlay中获得如何在应用程序中实现的更简单版本,那就太好了,因为文档和示例似乎不太难实现,而且我们在这里得到的信息是零零碎碎的

如果支付成功,解锁付费版本的下一步是什么。现在我通过了我的意图,这不是一个有效的方法

@Override
    public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
        Intent paid = new Intent(this, Test_Paid.class);
        startActivity(paid);
    }
我想要的是,当付款成功时,它应该总是打开付费版本,而不是免费版本,现在不是这样

谢谢


有两种方法可以实现应用程序的付费和免费版本:

  • 不同的产品风格:如果你走这条路,那么基本上你的付费和免费版本是两个完全不同的应用。用户必须从play store独立下载一个或另一个。 产品风味是构建时的特性。一旦生成apk,就不能切换产品口味

  • 保持付费功能不可见:如果你想要一个单一的apk,这是一条路要走。一旦用户为订阅付费,您可以将此数据存储在后端,并在启动时通过api通知客户是否为付费客户


  • 如果没有后端,可以将hasUserPaid标志保存在具有某种加密/安全级别的本地sqlite数据库中。这样做的缺点是,一旦用户卸载或清除应用程序的数据,数据库就会被清除。要重新填充,您必须使用play服务验证用户是否购买了您的订阅。

    谢谢@Udit您能详细说明您的第二点吗?如果我不想要sqlite db,没有其他内容吗?您必须使用某种磁盘存储。如果不是这样,您可以查看共享首选项。如果sqlite语法繁杂,请尝试使用room