10

我今天在 Google Play 中有一个付费应用程序,我想将其更改为具有 3 次应用内购买的免费应用程序。问题在于如何将应用内购买“给予”现有客户,因为已经为应用付费。

我只是有一个想法-许可可以解决问题吗?

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

是否可以检查许可证,如果发现授予用户访问与 3 个应用内购买相同的功能的访问权限?

4

2 回答 2

2

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

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

一种方法是使用一些代码来检查“旧用户”(那些安装了旧的付费应用程序的用户),并在他们的设备上设置一个偏好,将他们标记为拥有付费应用程序。

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

于 2013-02-28T19:15:17.913 回答
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;
    }
}

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

于 2014-02-10T11:50:48.610 回答