使用In App Billing将付费的Android应用程序更改为免费 – 对现有客户进行访问

我今天在Google Play上有一个付费应用程序,我想换成3个应用程序内购买的免费应用程序。 问题的原因是如何“给”应用程序内购买给已经支付给应用程序的现有客户。

我只是有一个思想 – 可以执照吗?

现有的付费应用程序使用Google许可,但是当所有function都以应用程序内购买的方式购买时,应用程序就不再需要了 – 对吧? 所有现有客户都有许可证,而所有新客户都不需要。

是否有可能检查许可证,如果发现授予用户访问相同的function,3个应用内购买将允许访问?

Solutions Collecting From Web of "使用In App Billing将付费的Android应用程序更改为免费 – 对现有客户进行访问"

据我所知,当购买还没有免费时(例如通过优惠券),没有好的方法可以给用户一个免费的应用程序内购买。

有一些可能的方法来讨论如何使用我的应用程序的付费版本作为免费版本的“钥匙”?

一种方法是使用一些代码来检查“传统用户”(那些安装了旧付费应用的用户),然后在他们的设备上设置一个首选项,将其标记为拥有付费应用。

如果用户切换手机或卸载,然后重新安装您的应用程序,您将遇到问题。 您可以通过为免费的旧版用户添加第二套应用内商品来规避这种情况,但只能提供给已安装旧应用的用户。 他们购买免费的旧版本后,可以卸载旧的应用程序。 然后,无论何时您检查购买的产品,您都会检查旧产品或新产品。

我认为你可以这样做,来validation“专业”的应用程序是否可用,并签署相同的签名。

public boolean isProAppPresent() { try { PackageInfo info = context.getPackageManager().getPackageInfo("xxxpro", PackageManager.GET_META_DATA); Log.d(TAG, "Pro app is installed: " + info.applicationInfo.name); return context.getPackageManager().checkSignatures("xxx", "xxxpro") == PackageManager.SIGNATURE_MATCH; } catch (NameNotFoundException e) { return false; } } 

这很容易做,但我不确定它是否是一个完整的保护。