如何在两个Android应用之间分享应用内购买

时间:2014-04-03 13:23:39

标签: android in-app-billing

我有两个Android应用程序(app1和app2),它们都是免费的,但app2包含应用内购买升级。

现在我要将这两个应用程序合并到app1(没有应用内购买的应用程序)。

我的问题是:

  • 如何保留已在app2中使用的购买,以便购买它的每个人都可以享受组合应用的升级?我知道我可以分享偏好,但我不想让用户继续使用这两个应用程序。

  • 假设在app2上购买了应用程序内购买升级的用户尝试将新的组合app1安装到另一台设备上 - 如果在其他设备上安装了app2,我该如何从app2恢复购买(也可能不会在Google Play上播放)?

由于

2 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的。应用内购买与首次创建应用时使用的唯一package-id直接相关。

您可以保留app2应用内购买的唯一方法是将app1合并到app2,从而保留应用的购买。最后,如果这不起作用,您必须使用Google Play服务以外的服务提供解决方案。

答案 1 :(得分:0)

无法通过应用内购买API进行,但是有两种方法可以解决此问题:

  1. 为这两个应用程序构建自己的后端并同步购买。如果您不想自己构建整个后端,则可以使用firebase身份验证+ firebase数据库。当然,明显的缺点是必须建立和维护后端,使用户创建帐户,这会增加摩擦。
  2. 如果您使用的用户将在设备上安装两个应用程序,则可以始终公开与另一个应用程序共享购买信息的ContentProvider。您可以通过检查呼叫者程序包的签名并确认它是官方下载的应用程序来确保其安全。作为ContentProvider的替代方案,您可以在一个应用程序中公开一项服务,并通过AIDL从另一个应用程序连接到该服务,也可以让两个应用程序共享用户ID并直接进行通信。缺点是必须要求您的用户安装两个应用程序。