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

4
我有两款安卓应用(app1和app2),它们都是免费的,但是app2包含了应用内购买升级。现在我要将这两个应用合并到app1中(没有应用内购买的那个)。我的问题如下:
1. 我该如何保留已在app2中使用过的购买,以便所有购买了该应用的用户都可以在合并后的app1中享受到升级呢?我知道可以共享首选项,但我不希望用户继续保留两个应用。 2. 假设一个购买了app2中应用内购买升级的用户试图在另一台设备上安装新的合并后的app1,那么当他在另一台设备上安装时,他的购买记录如何从app2中恢复,而且app2在其他设备上可能无法下载(也可能在Google Play上不可用)?
谢谢。
2个回答

1

通过应用内购买API是不可能的,但有几种方法可以解决这个问题:

  1. 为两个应用程序构建自己的后端并同步购买。如果您不想完全自己构建后端,则可以使用Firebase身份验证+ Firebase数据库。显然的缺点是必须构建和维护后端,并让用户创建帐户,这将增加摩擦。
  2. 如果用户在设备上安装了两个应用程序,则始终可以公开ContentProvider以与另一个应用程序共享购买信息。您可以通过检查调用者包的签名并验证它是正式下载的应用程序来使其安全。除了ContentProvider之外,您还可以在其中一个应用程序中公开服务,并通过AIDL从另一个应用程序连接到它,或者您可以让两个应用程序共享用户ID并直接通信。缺点是必须要求用户安装两个应用程序。

1
很遗憾,这是不可能的。应用内购买直接与创建应用时使用的唯一软件包ID相关联。您唯一能保留app2的应用内购买的方法是将app1合并到app2中,从而保留应用的购买。最后,如果这样做行不通,您必须使用Google Play服务之外的其他服务手动解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接