通过In App Billing将付费Android应用程序更改为免费 - 为现有客户提供服务

时间:2013-02-28 13:37:40

标签: android in-app-billing

我今天在Google Play上有一个付费应用,我希望将其更改为3个应用内购买的免费应用。问题在于如何向现有客户“提供”应用内购买,已经支付了该应用。

我刚才有一个想法 - 可以授权吗?

现有的付费应用程序使用Google许可,但当所有功能作为应用程序内购买购买时,这不再是必要的 - 对吗? 因此,所有现有客户都拥有许可证,而所有新客户都不需要许可证。

是否可以检查许可证,如果发现允许用户访问与3个应用程序内购买相同的功能,则可以访问?

2 个答案:

答案 0 :(得分:2)

据我所知,当购买尚未免费时(例如通过优惠券),没有任何好方法可以免费为用户提供应用内购买。

How can I use the paid version of my app as a “key” to the free version?

上讨论了一些可行的方法

执行此操作的一种方法是使用一些代码检查“遗留用户”(已安装旧付费应用的用户),并在其设备上设置首选项,将其标记为拥有付费应用。

如果用户切换手机或卸载然后重新安装您的应用,您将遇到问题。您可以通过为免费的旧用户添加第二组应用内商品来规避这一点,但仅限于安装了旧应用的用户。购买免费旧版本后,他们可以卸载旧应用程序。然后,无论何时检查购买的产品,都要检查旧产品或新产品。

答案 1 :(得分:1)

我认为您可以执行此类操作,以验证“专业”应用是否可用且由相同签名进行签名。

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

很容易做到,但我不确定它是否是完全保护。